本文只是讲解如何使用,并不讲解其中实现原理。
1.首先在Widget或者其他你认为要用到地方包含相关的头文件(以下皆是在Widget下用)
#include <QThread>
#include <QDebug> //方便打印
因Qt5的线程运用结合了信号与槽,这跟Qt4和C++本身的线程运用有点不一样。
2.先添加一个自定义类,一定要继承QObject类或者QWidget类有关的类,不然都没有信号与槽的实现基础,切记。参考如下图
3.其次在在该类中写上那些耗时间或者是打算利用QThread::sleep等延时函数的相关处理函数。
void go(){
doSomeing;
...
}
3.再在上图的signals:写上自定义的信号(这个信号视情况而写,没用上可以不写,一般用于子线程向其他线程传递信息),
例如:
void runStart(void);
4.然后回到Widget类,在该类中也定义一个信号,此信号是用来启动子线程
signals: