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 }