我们在主程序中安装了一个对象并将其传递给QML View。定义了Q_PROPERTY
。我想知道如何将事件列表器设置为NOTIFY
信号?
答案 0 :(得分:1)
如果我理解正确,this Qt DevNet forum post的设置与您的相似。只有在这种情况下,他们才会定义READ
函数,而somethingHappened
函数又会发出class SomeClass : public QObject {
Q_OBJECT
Q_PROPERTY(sometype someProperty READ getSomeProperty NOTIFY somePropertyChanged)
signals:
void somePropertyChanged();
};
QML_DECLARE_TYPE(SomeClass)
信号。请务必一直向下滚动到工作示例的最后一条注释。
总之,您在C ++头文件中定义了类似的内容:
qmlRegisterType<SomeClass>("SomeModule", 1, 0, "SomeClass");
SomeClass myObj;
QDeclarativeView view;
view.rootContext()->setContextProperty("rootItem", (SomeClass *)&myObj);
在C ++主方法中有类似的东西:
import SomeModule 1.0
SomeClass {
onSomePropertyChanged: {
// do stuff
}
}
然后在QML方面你会像这样处理它:
{{1}}