前面介绍过定时器事件(QTimerEvent),有个弊端,就是每启动一个定时器都要对应的ID。本次介绍在设计器中使用Qtimer。
首先在设计器中添加一个LCD Number,和两个按钮。
头文件
#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++;
}
);
}
程序结果图