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.csdn.net/MYTCHITOS/article/details/105892321

你可能感兴趣的:(代码调试,QT,qt,开发语言)