鼠标拖动控件的移动,其实本质上就是改变控件的X和Y坐标,在结合控件本身带有的按压信号而触发事件即可实现
首先定义两个变量用来记录当鼠标按下控件时的初始坐标
property int lastX : 0
property int lastY : 0
onPressed: {
//鼠标按下时,记录鼠标初始位置
lastX = mouseX
lastY = mouseY
}
然后编写系统定义的改变位置信号PositionChanged,只要判断鼠标移动的量,修改控件的XY坐标来改变控件位置
onPositionChanged: {
if (pressed) {
//鼠标按住的前提下,坐标改变时,计算偏移量,应用到目标item的坐标上即可
root.x += mouseX - lastX
root.y += mouseY - lastY
}
}