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 }