// widget.hclass Widget : public QWidget{ Q_OBJECTpublic: Widget(QWidget *parent = nullptr); ~Widget();private: Ui::Widget *ui; // 定时器事件 void timerEvent(QTimerEvent*); // 定时器ID int id1; int id2;};
// widget.cpp#include "widget.h"#include "ui_widget.h"#include "QTimerEvent"Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){ ui->setupUi(this); // 启动定时器 法一 id1 = startTimer(1000); id2 = startTimer(2000); // 启动定时器 法二 (推荐) QTimer* timer1 = new QTimer(this); timer1->start(500); // 每隔0.5秒发送信号 connect(timer1,&QTimer::timeout,[=](){ static int num = 0; ui->label_4->setText(QString::number(num++)); }); // 点击按钮 暂停定时器 connect(ui->pushButton,&QPushButton::clicked,[=](){ timer1->stop(); });}Widget::~Widget(){ delete ui;}void Widget::timerEvent(QTimerEvent *e){ if(e->timerId()==id1) { static int num=0; ui->label_2->setText(QString::number(num++)); } else if(e->timerId()==id2) { static int num2=0; ui->label_3->setText(QString::number(num2++)); }}