Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
暴露一个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 - Fatal编程技术网

暴露一个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++;对象并侦听更改事件 我有一个对象,我在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,其中

现在,在我的qml中,我如何倾听我正在公开的字符串的变化。因此,我想要一个侦听器方法,它在每次
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!')
}