我正在 QML 中使用
DragHandler
在屏幕上移动对象。我想添加一个功能,如果在拖动过程中按下 escape(鼠标仍然按下),则运动会跳回其起点并取消拖动。我目前不知道它是如何实现这一点的。 DragHandler
似乎没有 cancel
或 reset
功能。有人知道如何实现这一目标吗?
提前非常感谢您!
示例代码:
import QtQuick 2.14
import QtQuick.Controls 2.14
Window {
width: 1280
height: 768
visible: true
Rectangle {
id: rectangle
x: 100; y: 100;
width: 100; height: 100;
color: "red"
}
DragHandler {
target: rectangle
}
Shortcut {
sequence: "Escape"
onActivated: ;
}
}
您可以将
Rectangle
/DragHandler
放入 Repeater
内。当您遇到 Escape 时,您可以切换 Repeater
模型来重置 Rectangle
/DragHandler
模拟重置:
Repeater {
id: repeater
model: 1
Rectangle {
x: 100; y: 100;
width: 100; height: 100;
color: "red"
DragHandler { }
}
}
Shortcut {
sequence: "Escape"
onActivated: {
repeater.model = 0;
repeater.model = 1;
}
}
您可以在线尝试!