QT中遇到问题:QObject: Cannot create children for a parent that is in a different thread.

1、在QT中使用moveToThread创建子线程时,出现了这个问题,查了一些资料发现是我在子线程中new了一个新的对象,而且该对象没有指定父对象,
 m_serialPort = new QSerialPort();

运行的时候默认是在主线程中创建的,然后你又把它移到了子线程,所以会出现在子线程中调用了主线程中的对象,所以会报错。

2、解决办法就是,在子线程中new一个新对象时要明确指明父对象:
 m_serialPort = new QSerialPort(this);

这样即可解决。然后你在把它移到子线程中时,该对象也会跟着移过去。

3、网上找了半天资料,都看得云里雾里,直到看到这篇文章:https://blog.youkuaiyun.com/MYTCHITOS/article/details/105892321
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值