1、在QT中使用moveToThread创建子线程时,出现了这个问题,查了一些资料发现是我在子线程中new了一个新的对象,而且该对象没有指定父对象,
m_serialPort = new QSerialPort();
运行的时候默认是在主线程中创建的,然后你又把它移到了子线程,所以会出现在子线程中调用了主线程中的对象,所以会报错。
2、解决办法就是,在子线程中new一个新对象时要明确指明父对象:
m_serialPort = new QSerialPort(this);
这样即可解决。然后你在把它移到子线程中时,该对象也会跟着移过去。