// widget.h
class Widget : public QWidget
{
Q_OBJECT
public:
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++));
}
}