Qt Creator 建议 onDragChanged
插槽存在于 MouseArea
中。
MouseArea {
id: mouseArea
...
onDragChanged: console.log('Drag changed')
}
但在运行时它失败了:
无法分配给不存在的属性“onDragChanged”
回答1
正确的方法是:
drag.onActiveChanged: console.log("Drag active:", drag.active)
这是因为 drag
是一组属性(在引擎盖下它是一个 QObject 或类似的),所以您需要首先引用该组。
您的初始尝试不起作用,因为 drag
被声明为 CONSTANT Q_PROPERTY,它没有 on...Changed
信号
回答2
愚蠢的解决方法(但它有效......)
readonly property bool _dragActive: drag.active
on_DragActiveChanged: {
... = drag.active
}