26QTimer定时器的使用

时间:2021-10-18 03:01:57

前面介绍过定时器事件(QTimerEvent),有个弊端,就是每启动一个定时器都要对应的ID。本次介绍在设计器中使用Qtimer。

首先在设计器中添加一个LCD Number,和两个按钮。

26QTimer定时器的使用

 

 

头文件

#include <QTimer>

 

QTimer *timer;

 

按钮添加对应的槽函数,如下:

//开始按钮

void Widget::on_pushButton_clicked()

{

   //启动定时器,每隔100ms,自动触发信号timeout()。

    if(timer->isActive()!=true)

        timer->start(100);        

}

//暂停按钮

void Widget::on_pushButton_2_clicked()

{

    if(timer->isActive()==true)

        timer->stop();

}

 

对应的信号的Lambda表达式

Widget::Widget(QWidget *parent) :

    QWidget(parent),

    ui(new Ui::Widget)

{

    ui->setupUi(this);

 

    timer=new QTimer(this);

//信号timeout

    connect(timer,&QTimer::timeout,

            [=]()

            {

         //没启动一次定时器,进行加1

               static int num=0;

               ui->lcdNumber->display(num);

               num++;

            }

    );

}

 

程序结果图

26QTimer定时器的使用