一、第一种方式
1.线程类的封装
MyThead.h
#ifndef MYTHREAD_H
#define MYTHREAD_H
#include <QThread>
class MyThread : public QThread
{
Q_OBJECT
public:
explicit MyThread(QObject *parent = 0);
signals:
void done();
public slots:
protected:
void run();
};
#endif // MYTHREAD_H
MyThead.cpp
#include "mythread.h"
#include <QDebug>
MyThread::MyThread(QObject *parent) : QThread(parent)
{
}
void MyThread::run()
{
qDebug() << "sub threadID: " << QThread::currentThread();
// 很复杂的操作
for(int i =0; i<1000000000000000000; ++i)
{
qDebug() << "current num: " << i;
}
emit done();
}
2.界面类
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
#include <QTimer>
#include "mythread.h"
namespace Ui {
class