如何绑定到 `MouseArea` 的 `onDragChanged`?
how to bind to `MouseArea`'s `onDragChanged`?
Qt Creator 建议 onDragChanged
插槽存在于 MouseArea
。
MouseArea {
id: mouseArea
...
onDragChanged: console.log('Drag changed')
}
但在运行时它失败了:
Cannot assign to non-existent property "onDragChanged"
愚蠢的解决方法(但它有效...)
readonly property bool _dragActive: drag.active
on_DragActiveChanged: {
... = drag.active
}
正确的方法是:
drag.onActiveChanged: console.log("Drag active:", drag.active)
这是因为 drag
是一组属性(在引擎盖下它是一个 QObject 或类似的东西),所以您需要先引用该组。
您的初始尝试无效,因为 drag
被声明为 CONSTANT Q_PROPERTY,它没有 on...Changed
信号
Qt Creator 建议 onDragChanged
插槽存在于 MouseArea
。
MouseArea {
id: mouseArea
...
onDragChanged: console.log('Drag changed')
}
但在运行时它失败了:
Cannot assign to non-existent property "onDragChanged"
愚蠢的解决方法(但它有效...)
readonly property bool _dragActive: drag.active
on_DragActiveChanged: {
... = drag.active
}
正确的方法是:
drag.onActiveChanged: console.log("Drag active:", drag.active)
这是因为 drag
是一组属性(在引擎盖下它是一个 QObject 或类似的东西),所以您需要先引用该组。
您的初始尝试无效,因为 drag
被声明为 CONSTANT Q_PROPERTY,它没有 on...Changed
信号