错误原因:QObject是可重入的,它的大多数非GUI子类,例如QTimer, QTcpSocket, QUdpSocket and QProcess都是可重入的,使得这些类可以同时用于多线程。需要注意的是,这些类设计为从一个单一的线程创建和使用的,在一个线程创建对象,而从另外一个线程调用对象的函数并不能保证行得通。
本例中成员变量QTimer是在主线程创建对象时创建的,但是是在run函数中调用,run函数运行在另一个线程中,所以提示错误。
运行的时候会崩溃,并提示如下错误:
Signal received
The inferior stopped because it received a signal from the Operating System.
Signal name : SIGSEGV
Signal meaning : Segmentation fault
这个错误说明程序中有野指针,断点以下很容易找出错误。
多线程不允许操作UI!!!
我的进度条更新 应该通过信号值发送
另一博主的讲解