Qt学习笔记——定时器
程序员文章站
2022-06-15 22:53:55
定时器事件1.timerEventwidget.cpp文件#include "widget.h"#include "ui_widget.h"#includeWidget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){ ui->setupUi(this); id1 = startTimer(1000);//间隔 单位毫秒 id2 = star...
定时器事件
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("暂停");
});
});
本文地址:https://blog.csdn.net/weixin_45762143/article/details/108147131
上一篇: ESP8266 AP模式