方法一:Qt4.7及以前版本
1.创建一个类从QThread类派生
1)在项目中新建一个基于QObiect的c++ class类文件(例如MyThread ),生成MyThread .h和MyThread .cpp两个文件
2)在头文件MyThread .h中修改两处,a)将包含的头文件#include< QObiect >替换成#include < QThread >,b)将继承的基类class MyThread : public QObiect 修改为class MyThread : public QThread
3)在MyThread .cpp中,将MyThread::MyThread(QObject *parent) : QObject (parent)修改为MyThread::MyThread(QObject *parent) : QThread(parent)
2.在子线程类workThread.cpp中重写run函数,将处理操作写入该函数中,例如:
void MyThread::run()
{
//复杂的数据处理,需要耗时5秒,用sleep(5)代替
sleep(5);
emit isDone();//数据处理结束信号
}
3.在主线程mywidget.cpp中创建子线程 对象,启动子线程,调用start()函数,
例如
#include "mywidget.h"
#include "ui_mywidget.h"
#include<QThread>
#include<QDebug>
MyWidget::MyWidget(QWidget *parent) :
QWidget(parent),
ui(ne