当前位置:网站首页>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函数中就行了。
边栏推荐
猜你喜欢
随机推荐
剑指Offer 33.二叉搜索树的后序遍历序列
Beckhoff ET2000 listener use
HAL库笔记——通过按键来控制LED(基于正点原子STM32F103ZET6精英板)
BCS演讲实录 | 未来智安CTO陈毓端精讲《XDR扩展威胁检测响应探索与实践》
双网络安全nvr/布控球,可双向同时接入国网B接口视频监控平台和国标28181平台
jmeter之数据库连接JDBC安装与使用
ansible的安装与部署
【详解】优先级队列的底层实现
DMA相应外设映射
防抖和节流(实例讲解)
MPU6050 accelerometer and gyroscope sensor is connected with the Arduino
Mongoose无法更新时间戳
剑指Offer 31.栈的压入、弹出
Hash table problem solving method
rosdep update失败解决办法(亲测有效)
PHP将字符切割成每个拼音
【多线程】线程安全保护机制
【面试必看】链表的常见笔试题
MP4格式分析
【LeetCode】求和









