1、头文件声明线程类:
mainwindow.h
//线程类 继承自QThread
class Thread : public QThread
{
Q_OBJECT
signals:
void sig(QString s); //信号
private:
void run();
};
2、代码页写线程实现内容:
mainwindow.cpp
//线程的具体实现
void Thread::run()
{
int i =0;
while (true)
{
i++; //i递增计数
emit sig(QString::number(i)); //发射信号
QThread::sleep(1); //休眠1秒
//QThread::msleep(1); //休眠1豪秒
//QThread::usleep(1); //休眠1微秒
}
}
3、更新界面的槽函数:
mainwindow.cpp
//槽函数,修改数码管内容
void MainWindow::slot(QString s)
{
ui->lcdNumber->display(s);
}
4、新建线程对象:
mainwindow.cpp
Thread * th= new Thread; //新建线程
5、连接线程对象槽与窗体信号
mainwindow.cpp
QObject::connect(th, SIGNAL(sig(QString)), this, SLOT(slot(QString)),Qt::QueuedConnection); //连接线程信号、UI槽
6、启动线程的运行:
mainwindow.cpp
th->start();//开启线程
7、运行,看效果:
开启线程,数字自增