qt - 如何绑定到`MouseArea`的`onDragChanged`?

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
}

相似文章

qt - Qt Qml 未定义参考错误鼠标

我想在map上获得鼠标X和鼠标Y。我使用mouse.x,但出现"ReferenceErrormouseisnotdefined"错误。在qt的信号中我没有得到错误,但在我创建的信号中我得到了错误不是错...

随机推荐

最新文章