MainWindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTimer>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//启动定时器
id1 = startTimer(1000);//参数1:间隔,单位ms
id2 = startTimer(2000);
//定时器的第二种方法
QTimer * timer = new QTimer(this);
//启动定时器
timer->start(500);
connect(timer,&QTimer::timeout,[=](){
static int num = 1;
//label_4每0.5s加1
ui->label_4->setText(QString::number(num++));
});
//点击暂停按钮,停止定时器
connect(ui->btn,&QPushButton::clicked,[=](){
timer->stop();
});
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::timerEvent(QTimerEvent *ev)
{
if(ev->timerId()==id1)
{
static int num = 1;
ui->label_2->setText(QString::number(num++));
}
if(ev->timerId()==id2)
{
static int num2 = 1;
ui->label_3->setText(QString::number(num2++));
}
}
MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
//重写定时器的事件
void timerEvent(QTimerEvent *);
int id1;//定时器1的标识
int id2;//定时器2的标识
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
一般推荐第二种
演示效果