0

我们有一个我们在主程序中实例化的对象并将其传递给 QML 视图。定义了一个Q_PROPERTY. 我想知道如何设置事件监听器来NOTIFY发出信号?

4

1 回答 1

1

如果我理解正确,这个 Qt DevNet 论坛帖子的设置与您的类似。只有在这种情况下,他们才定义READ依次发出somethingHappened信号的函数。确保一直向下滚动到工作示例的最后一条评论。

总之,您在 C++ 头文件中定义了类似的内容:

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);

然后在 QML 方面,您将像这样处理它:

import SomeModule 1.0

SomeClass {
    onSomePropertyChanged: {
      // do stuff
    }
}
于 2012-05-03T10:06:07.403 回答