QtQuick path鼠标单击事件上的曲线曲线

时间:2019-11-04 07:29:37

标签: qt qml qtquick2

嘿,发布这个问题来学习如何在onclick上弯曲一条线,即使用路径曲线我想弯曲一条线,但不是硬编码,它发生在鼠标单击事件上,例如单击(400,320)然后在该位置Y上弯曲位置将发生变化(例如说+75),因为在图像中它是硬编码的,但是我希望无论何时发生鼠标单击事件,曲线onclick都应该弯曲

1 个答案:

答案 0 :(得分:2)

这是我的实现。这不是您想要的形状。似乎您无法使用PathCurve来获得类似图像的图像,但是肯定可以通过 PathCubic 对结果进行更多控制。 >

        Canvas {
            id: canvas
            width: 640; height: 640
            contextType: "2d"

            Path {
                id: myPath
                startX: 320; startY: 0

                PathCurve { id: curvePoint_top; x: 320; y: curvePoint.y - 80 }
                PathCurve { id: curvePoint; x: 320; y: 320 }
                PathCurve { id: curvePoint_bottom; x: 320; y: curvePoint.y + 80 }
                PathCurve { x: 320; y: 640 }
            }

            onPaint: {
                context.clearRect(0,0,width,height);
                context.strokeStyle = Qt.rgba(.4,.6,.8);
                context.path = myPath;
                context.stroke();
            }

            MouseArea{
                anchors.fill: parent
                onClicked: {
                    curvePoint.x = mouseX;
                    curvePoint.y = mouseY;
                    canvas.requestPaint();
                }
            }
        }