定时器事件
1.timerEvent
widget.cpp文件
#include "widget.h" #include "ui_widget.h" #include<QDebug> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); id1 = startTimer(1000);//间隔 单位毫秒 id2 = startTimer(2000); } //启动定时器 void Widget::timerEvent(QTimerEvent *ev) { if(ev->timerId() == id1) { static int num = 1; //label2每隔一秒+1 ui->label_2->setText(QString::number(num++)); } if(ev->timerId() == id2) { //label3每隔两秒+1 static int num2 = 1; ui->label_3->setText(QString::number(num2++)); } } Widget::~Widget() { delete ui; }
startTimer相当于每隔1s执行一次timerEvent函数
因此需要吧变量num改成静态变量
startTimer的返回值是int类型,所以设定另个Int类的变量来区分两个定时器
(id1和id2已经在widget.h文件中声明)
2.定时器类
#include<QTimer> QTimer * timer = new QTimer(this); startTimer(500); connect(timer,&QTimer::timeout,[=](){ static int num = 1; ui->label_4->setText(QString::number(num++)); });
timeout:时间到了,num++
定时器的暂停和启动
//点击暂停 实现停止定时器 connect(ui->btn,&QPushButton::clicked,[=](){ timer->stop(); ui->btn->setText("启动"); //暂停后点击启动 实现继续计时 connect(ui->btn,&QPushButton::clicked,[=](){ timer->start(500); ui->btn->setText("暂停"); }); });
c/c++开发分享Qt学习笔记——定时器地址:https://blog.csdn.net/weixin_45762143/article/details/108147131
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/597676.html