我是 Qml 的新手,在将 javascript 处理程序连接到属性信号时遇到了一些问题。我有一个带有属性和信号的 C++ 对象。
class CppObject : public QObject
{
Q_OBJECT
Q_PROPERTY(QVariant value READ getValue WRITE setValue NOTIFY valueChanged)
signals:
void valueChanged(const QVariant &);
};
Run Code Online (Sandbox Code Playgroud)
这些对象是通过 C++ 工厂方法创建的,我能够将值和更改绑定到 Qml 属性。这一切都有效。
property CppObject obj: cppProxy.PropertyFactory("foo");
Text
{
x: 100;
y: 100;
text: parent.obj.value;
}
Run Code Online (Sandbox Code Playgroud)
对于某些属性,我想将 valueChanged 信号连接到 javascript 函数。我一直在浏览 Qml 文档并尝试了很多东西,但没有任何运气。我认为这样的事情应该有效,但没有
function objEventHandler()
{
console.log('objEventHandler() ran')
}
Component.onCompleted:
{
obj.value.valueChanged.connect(objEventHandler);
}
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?
您也可以按照您在示例中尝试过的方式进行连接,但形式为:
Component.onCompleted:
{
obj.valueChanged.connect(objEventHandler);
}
Run Code Online (Sandbox Code Playgroud)
信号不是“value”对象的属性,而是“obj”的属性。
| 归档时间: |
|
| 查看次数: |
3551 次 |
| 最近记录: |