Как при смене ComboBox отрисовывать новую фигуру в canvas
Есть следующий код. При его использовании отрисовывается 1 раз и всё. При смене индекса остаётся та же фигура.
Вопрос: что делать, чтобы это работало так, как я хотел бы, то есть, что бы при смене с First на Second, например, отрисовывалась другая фигура.
import QtQuick 2.15
import QtQml 2.15
import QtQuick.Controls 2.15
import "Main.js" as Main
Window {
id: test
width: 1920
height: 1080
visible: true
title: qsTr("Hello World")
ComboBox {
id:box
model: ["First", "Second", "Third"]
}
Canvas{
width: 1920
height: 1080
onPaint:{
var ctx = getContext("2d");
ctx.fillStyle = Qt.rgba(1, 0, 0, 1);
if(box.currentIndex == 0)
{
Main.func2(ctx);
}
else if(box.currentIndex() == 1)
{
Main.func2(ctx);
}
}
}
}
---------------------------------------------------------------------
Это то что лежит в Main.js
function func1(ctx) {
ctx.reset();
ctx.beginPath();
ctx.moveTo(108, 0.0);
ctx.lineTo(141, 70);
ctx.lineTo(218, 78.3);
ctx.lineTo(162, 131);
ctx.lineTo(175, 205);
ctx.lineTo(108, 170);
ctx.lineTo(41.2, 205);
ctx.lineTo(55, 131);
ctx.lineTo(1, 78);
ctx.lineTo(75, 68);
ctx.lineTo(108, 0);
ctx.closePath();
ctx.fill();
}
function func2(ctx) {
ctx.reset();
ctx.beginPath();
ctx.arc(75,75,50,0,Math.PI*2,true)
ctx.stroke();
}
function clear(ctx)
{
ctx.fillStyle = Qt.rgba(1, 0, 0, 1);
ctx.reset();
ctx.requestPaint();
}