当前位置:网站首页>QObject: Cannot create children for a parent that is in a different thread.
QObject: Cannot create children for a parent that is in a different thread.
2022-08-02 03:35:00 【MAUM】
先声明,这个是QT5,不需要QThread:run或者exec之类的。写一个子类,然后实例化对象,直接move到新线程,然后线程start即可,子类也无需写while(1)这样的结构。
很多时候大家遇到这个问题,搜到的结果都是:
在主线程实例化子类对象的时候声明了父类,实际上,很多并没有声明父类,但是同样遇到了这样的问题,那到底是为什么呢?
可能的原因是:
在子类的构造函数中new了一个对象,然后在子类的slot函数中又使用了这个对象。这个时候就会提示如题的错误。具体原因说不清,按道理在子类构造函数中声明的对象已经move到了新线程中,但实际上并不是,,,所以,还是不要在子类的构造函数中new新的对象了,写一个slot函数,乖乖地让主函数emit调用吧!

这里new了两个对象,把这两个对象包括connect函数都移动到slot函数中就行了。
边栏推荐
猜你喜欢
随机推荐
企业需要知道的5个 IAM 最佳实践
STM32 CAN 介绍以及相关配置
【LeetCode】Merge
AD实战篇
TCP-IP协议整理
5个开源组件管理小技巧
想低成本保障软件安全?5大安全任务值得考虑
MQ-5 combustible gas sensor interface with Arduino
Altium Designer基础知识
剑指Offer 32.Ⅲ从上到下打印二叉树
音视频文件的码率与大小计算
rosdep update failure solution (pro-test effective)
剑指Offer 36.二叉搜索树与双向链表 中序遍历
The use and simulation of vector implementation:
运行时应用自我保护(RASP):应用安全的自我修养
二进制中1的个数
倒排单词
ICMP timestamp请求响应漏洞
flv文件结构解析
金融行业案例 | 未来智安XDR助力银行业客户优化安全运营体系,有效提高告警研判率









