Qt QTimerEvent 定时器事件

QTimerEvent类用来描述一个定时器事件。starttimer开启一个定时器,传入一个参数为超时时间,毫秒为单位。返回值是一个timerid,在timerEvent事件函数中,根据timerid来实现超时函数。

MainWindow.h

 1 #ifndef MAINWINDOW_H
 2 #define MAINWINDOW_H
 3  
 4 #include <QMainWindow>
 5 #include <QTimerEvent>
 6 namespace Ui {
 7 class MainWindow;
 8 }
 9  
10 class MainWindow : public QMainWindow
11 {
12     Q_OBJECT
13  
14 public:
15     explicit MainWindow(QWidget *parent = 0);
16     ~MainWindow();
17 protected:
18     void timerEvent(QTimerEvent* event);
19  
20 private:
21     Ui::MainWindow *ui;
22     int id1;
23     int id2;
24     int id3;
25 };
26  
27 #endif // MAINWINDOW_H

mainwindow.cpp

 1 #include "mainwindow.h"
 2 #include "ui_mainwindow.h"
 3 #include <QDebug>
 4 MainWindow::MainWindow(QWidget *parent) :
 5     QMainWindow(parent),
 6     ui(new Ui::MainWindow)
 7 {
 8     ui->setupUi(this);
 9     id1 = startTimer(1000);//开启一个1秒定时器,返回其ID
10     id2 = startTimer(1500);
11     id3 = startTimer(2200);
12 }
13  
14 MainWindow::~MainWindow()
15 {
16     delete ui;
17 }
18  
19 void MainWindow::timerEvent(QTimerEvent *event)
20 {
21     if(event->timerId() == id1)
22     {
23         qDebug()<<"timer1";
24     }
25     else if(event->timerId() == id2)
26     {
27         qDebug()<<"timer2";
28     }
29     else
30     {
31         qDebug()<<"timer3";
32     }
33 }
原文地址:https://www.cnblogs.com/ybqjymy/p/14635949.html