Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在qml画布路径上剪裁鼠标earea_Javascript_Qt_Canvas_Qml_Qt Creator - Fatal编程技术网

Javascript 如何在qml画布路径上剪裁鼠标earea

Javascript 如何在qml画布路径上剪裁鼠标earea,javascript,qt,canvas,qml,qt-creator,Javascript,Qt,Canvas,Qml,Qt Creator,是否有人可以建议是否有一种方法将鼠标ea裁剪为QML画布路径的形状(而不是整个画布,只是画布内路径的形状)或其他方法,以便当鼠标进入画布路径(或画布的可见部分)时,它可以交互。我用画布绘制了一张地图,地图的不同部分由不同的路径表示,下面是我的代码 Canvas{ width: 600 height: 600 x:0; z: 5 visible: true clip: false property string dstrict: &quo

是否有人可以建议是否有一种方法将鼠标ea裁剪为QML画布路径的形状(而不是整个画布,只是画布内路径的形状)或其他方法,以便当鼠标进入画布路径(或画布的可见部分)时,它可以交互。我用画布绘制了一张地图,地图的不同部分由不同的路径表示,下面是我的代码

Canvas{

    width: 600
    height: 600
    x:0;
    z: 5
    visible: true
    clip: false

    property string dstrict: "cyan"
    onDstrictChanged: requestPaint()
    onPaint:mapdrawing();

    function mapdrawing(){
        var ctx = getContext("2d")
        ctx.clearRect(0,0,parent.width,parent.height);
        ctx.strokeStyle = "#BED348"
        ctx.fillStyle =   dstrict
        ctx.lineWidth = 1



        // #UG-317
        ctx.beginPath();
        ctx.fillStyle = dstrict
        ctx.moveTo(425.834860, 109.202870);
        ctx.lineTo(425.834860, 109.202870);
        ctx.lineTo(430.094860, 108.892870);
        ctx.lineTo(430.074860, 118.362870);
        ctx.lineTo(429.244860, 121.872870);
        ctx.lineTo(432.804860, 124.472870);
        ctx.lineTo(433.964860, 128.072870);
        ctx.lineTo(447.124860, 134.482870);
        ctx.lineTo(446.954860, 144.952870);
        ctx.lineTo(447.644860, 162.022870);
        ctx.lineTo(450.154860, 162.972870);
        ctx.lineTo(458.394860, 167.412870);
        ctx.lineTo(459.444860, 169.732870);
        ctx.lineTo(461.754860, 172.362870);
        ctx.lineTo(462.974860, 175.292870);
        ctx.lineTo(465.344860, 177.242870);
        ctx.lineTo(465.604860, 178.492870);
        ctx.lineTo(464.164860, 179.332870);
        ctx.lineTo(460.964860, 179.402870);
        ctx.lineTo(453.274860, 180.332870);
        ctx.lineTo(446.584860, 179.542870);
        ctx.lineTo(439.774860, 179.462870);
        ctx.lineTo(433.464860, 183.022870);
        ctx.lineTo(430.444860, 183.912870);
        ctx.lineTo(427.234860, 184.122870);
        ctx.lineTo(425.014860, 181.082870);
        ctx.lineTo(421.894860, 178.782870);
        ctx.lineTo(415.054860, 169.542870);
        ctx.lineTo(414.064860, 162.012870);
        ctx.lineTo(416.964860, 155.052870);
        ctx.lineTo(422.294860, 150.062870);
        ctx.lineTo(422.304860, 146.462870);
        ctx.lineTo(421.554860, 143.312870);
        ctx.lineTo(419.994860, 140.642870);
        ctx.lineTo(419.584860, 137.522870);
        ctx.lineTo(418.904860, 134.722870);
        ctx.lineTo(419.074860, 131.612870);
        ctx.lineTo(417.614860, 112.802870);
        ctx.lineTo(417.224860, 107.092870);
        ctx.lineTo(422.784860, 107.672870);
        ctx.lineTo(425.834860, 109.202870);
        ctx.fill()
        ctx.stroke()
        ctx.closePath()


    }

}





}

请搜索
MaskedMouseArea
谢谢您的回复您知道它是用PySide2实现的吗?不抱歉,不是用PySide2实现的。您对我要实现的目标有什么其他方法吗