暴露一个C++;对象并侦听更改事件 我有一个对象,我在C++中定义,并且尝试将成员字符串暴露给QML。该类定义为: #ifndef MYTYPE_H #define MYTYPE_H #include <QString> #include <QObject> class MyType : public QObject { Q_OBJECT Q_PROPERTY(QString foo READ foo WRITE setFoo NOTIFY fooChanged) public: MyType(QObject *parent = nullptr) : QObject(parent), mFoo("0") { } QString foo() const { return mFoo; } void setFoo(QString foo) { if (foo == mFoo) return; mFoo = foo; emit fooChanged(mFoo); } signals: void fooChanged(QString foo); private: QString mFoo; }; #endif // MYTYPE_H
现在,在我的qml中,我如何倾听我正在公开的字符串的变化。因此,我想要一个侦听器方法,它在每次暴露一个C++;对象并侦听更改事件 我有一个对象,我在C++中定义,并且尝试将成员字符串暴露给QML。该类定义为: #ifndef MYTYPE_H #define MYTYPE_H #include <QString> #include <QObject> class MyType : public QObject { Q_OBJECT Q_PROPERTY(QString foo READ foo WRITE setFoo NOTIFY fooChanged) public: MyType(QObject *parent = nullptr) : QObject(parent), mFoo("0") { } QString foo() const { return mFoo; } void setFoo(QString foo) { if (foo == mFoo) return; mFoo = foo; emit fooChanged(mFoo); } signals: void fooChanged(QString foo); private: QString mFoo; }; #endif // MYTYPE_H,c++,qt,qml,qt5,qqmlcontext,C++,Qt,Qml,Qt5,Qqmlcontext,现在,在我的qml中,我如何倾听我正在公开的字符串的变化。因此,我想要一个侦听器方法,它在每次mFoo成员发生更改时都会被调用 您可以使用-object进行此操作 Connections { target: yourContextProperty onFooChanged: console.log('I do something cool when foo changes!') } 另请参见更多示例“如何使用上下文属性”。(它还有一个连接的示例)尝试创建一个-object,其中
mFoo
成员发生更改时都会被调用 您可以使用-object进行此操作
Connections {
target: yourContextProperty
onFooChanged: console.log('I do something cool when foo changes!')
}
另请参见更多示例“如何使用上下文属性”。(它还有一个
连接的示例)尝试创建一个-object,其中target
作为上下文属性,并在那里处理onFooChanged
。我还没有对上下文属性进行测试,现在无法测试。@derM谢谢!不知道此连接
对象。它起作用了!如果你想写它作为答案,请继续。@Luca不是答案,而是相关的。当您仅将类用作上下文属性时,不必调用qmlRegisterType
。
Connections {
target: yourContextProperty
onFooChanged: console.log('I do something cool when foo changes!')
}