在QML中拖动元素时,如何实时获取鼠标坐标?

时间:2013-01-15 08:35:22

标签: qt mouse mouseevent drag qml

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

我想知道在拖动元素期间是否可以实时知道坐标。

实际上,我使用替换光标的自定义图像,其位置使用光标的坐标(隐藏)更新。

我实际上可以通过“onPositionChanged”或在点击“onClicked”之后恢复鼠标光标的位置。

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

任何帮助将不胜感激,谢谢你。

2 个答案:

答案 0 :(得分:9)

拖动元素会直接更改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
        }
    }
}

答案 1 :(得分:0)

考虑设置" hoverEnabled:true"在MouseArea中