4

我有一个用 Qt 编写的程序,它使用 QML。

我想知道在拖动元素的过程中是否可以实时知道坐标。

实际上,我使用了一个自定义图像来替换光标,它的位置是用光标的坐标更新的(它是隐藏的)。

实际上,我可以在使用“onPositionChanged”或在单击“onClicked”之后恢复鼠标光标的位置。

我还想在拖动过程中知道这些坐标,我尝试使用“onPressed”和“onPressAndHold”但没有成功,自定义光标的位置仅在单击释放时更新。

任何帮助将不胜感激,在此先感谢您。

4

2 回答 2

10

拖动元素会直接更改xy属性,以便您可以监控这些:

Rectangle {

    id: draggable

    width: 100
    height: 100

    onXChanged: {
        if (mouseArea.drag.active) {
            console.log("x=" + x)
        }
    }
    onYChanged: {
        if (mouseArea.drag.active) {
          console.log("y=" + y)
        }
    }

    MouseArea {
        id: mouseArea
        anchors.fill: parent
        drag {
            target: draggable
            axis: Drag.XandYAxis
        }
    }
}
于 2013-01-15T09:42:43.790 回答
0

考虑在 MouseArea 中设置“hoverEnabled: true”

于 2018-03-30T11:34:16.227 回答