首页| 论坛| 消息

回复: qml 与C++交互问题
#6 回 toby520 的帖子 [suma_alex 03-17 15:47]
toby520:你需要 参考 http://www.heilqt.com/2017/03/10/QtQuick-C++2/ (2017-03-17 09:34) 
仔细研究了版主提供的文档,自己尝试写了个demo,可以解决我的问题
1.qmlRegisterType(带参数)此函数可以将一个c++类注册到qml,但是必须在qml中实例化,
这点和我的项目有点冲突,因为c++类中的数据成员我需要在另一个线程中更改的,如果在qml中实例化,另一个线程如何调用C++类中的成员,也是个问题
2.注册单例
很明显 此方法比较好的解决了我的问题,定义一个 全局的C++类,
在一个线程中引用 此全局类对象,更改其数据成员
在qml中调用此全局类对象的函数,读取其数据成员
感谢版本的帮助,暂时先 这样进行,不知道版主还有没有更好的解决办法
#7 回 never_forget 的帖子 [suma_alex 03-17 15:49]
never_forget:Qt 和 QML 是可以进行信号传递的,当C++中知道了分辨率的改变,楼主定义一个信号,发送一下,在QML中监听,就OK了,但是貌似这样你的交互方式要是注册实例到QML,注册类,没用过,楼主也可以试试看,注册实例,然后监听,是可以保持C++和QML交互的,不行,楼主可以过来砍我! (2017-03-17 15:23) 
哈哈 我暂时就是这样进行的,写个demo,测试是OK的
#8 回 toby520 的帖子 [suma_alex 03-17 15:50]
toby520:你需要 参考 http://www.heilqt.com/2017/03/10/QtQuick-C++2/ (2017-03-17 09:34) 
刚忘记写了:
注册单例后有一个问题:
类中的枚举无法访问了.....
版本有没有解决办法?
难道要单独写个枚举类注册到qml中吗

<< 1 2 >> (2/2)

回复 发表
主题 版块