1.界面设计

设置右边的intvalue从10开始倒计时
2.新建Thread类
新建Thread类,使其继承QThread类,多态重写run函数,相当于线程执行函数

3.重写run函数

重写run函数,让另一个进程每隔1s发出一个信号,主线程使用connect捕捉
4.创建一个线程

5.connect函数连接信号和处理函数

6.实现处理函数

7.源码
thread.h
            
            
              c
              
              
            
          
          #ifndef THREAD_H
#define THREAD_H
#include <QObject>
#include<QThread>
class Thread : public QThread
{
    Q_OBJECT
public:
    Thread();
    virtual void run() override;
signals:
    void notify();
};
#endif // THREAD_Hwidget.h
            
            
              c
              
              
            
          
          #ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include"thread.h"
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
    Q_OBJECT
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void deal();
private:
    Ui::Widget *ui;
    Thread thread;
};
#endif // WIDGET_Hthread.cpp
            
            
              c
              
              
            
          
          #include "thread.h"
Thread::Thread()
{
}
void Thread::run()
{
    for(int i=0;i<10;i++)
    {
       sleep(1);
       emit notify();
    }
}widget.cpp
            
            
              c
              
              
            
          
          #include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    thread.start();
    connect(&thread,&Thread::notify,this,&Widget::deal);
}
 void Widget::deal()
 {
    int value=ui->lcdNumber->intValue();
     value--;
     ui->lcdNumber->display(value);
 }
Widget::~Widget()
{
    delete ui;
}8.演示
多线程实现倒计时