Как при смене 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();
}

Ответы (0 шт):