连接到来自 QML C++信号

Connect to C++ signal from QML

本文关键字:C++ 信号 QML 连接      更新时间:2023-10-16

我想像这样连接到来自 QML C++信号:

action.onMouseUp = function() {
    console.log("mouse up>>");
}

并在我的C++对象中声明此信号:

signals:
  void mouseUp(const QPointF point);

但是我收到QML错误:类型错误:无法分配给只读属性"mouseUp"。可能是什么问题?

你需要调用 connect method of action.onMouseUp 对象。

action.onMouseUp.connect( function() {
    console.log("mouse up>>");
});

我找到了另一种解决方案:

Q_PROPERTY(QJSValue onMouseUp READ onMouseUp WRITE setOnMouseUp)

即使没有连接() 也可以工作