当前位置:网站首页>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函数中就行了。
边栏推荐
猜你喜欢
随机推荐
MP4格式分析
激光驱鸟器
jni中jstring与char*互转
SLSA 框架与软件供应链安全防护
Basic IO (below): soft and hard links and dynamic and static libraries
工作过程中问题汇总
MQ-5 combustible gas sensor interface with Arduino
全排列 DFS
Mongoose无法更新时间戳
剑指Offer 31.栈的压入、弹出
未来智安XDR入选《CCSIP 2022中国网络安全产业全景图》
滑动窗口方法
音视频文件的码率与大小计算
未来智安创始人兼CEO唐伽佳荣膺36氪X·36Under36 “S级创业者”
The slave I/O thread stops because master and slave have equal MySQL server ids
Process (in): process state, process address space
剑指Offer 32.Ⅲ从上到下打印二叉树
【 LeetCode 】 design list
防抖和节流(实例讲解)
HAL库笔记——通过按键来控制LED(基于正点原子STM32F103ZET6精英板)








