gpt4 book ai didi

c++ - 如何在从声明 View 接收到的 QML 对象上设置事件监听器?

转载 作者:行者123 更新时间:2023-11-28 08:05:10 24 4
gpt4 key购买 nike

我们有一个在主程序中实例化的对象,并将其传递到 QML View 中。定义了一个 Q_PROPERTY。我想知道如何将事件监听器设置为 NOTIFY 信号?

最佳答案

如果我没理解错的话,this Qt DevNet forum post有一个类似于你的设置。只有在那种情况下,他们才会定义 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++ main 方法中是这样的:

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
}
}

关于c++ - 如何在从声明 View 接收到的 QML 对象上设置事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10428549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com