需要包含的头文件
#include <QTimer>
创建一个定时器类的对象
QTimer *timer = new QTimer(this);
timer 超时后会发出timeout()信号,所以在创建好定时器对象后给其建立信号与槽
//connect(信号发出者地址,发什么信号,在那个类触发,触发事件) connect(timer, SIGNAL(timeout()), this, SLOT(onTimeout()));
在需要开启或者暂停定时器的地方调用
//开启定时器 timer->start(msec );//定时器的时间单位是ms //停止定时器 timer->stop();
在前面绑定定时器时间的时候绑定的函数名字叫onTimeout(),在定时器开启过后每过msec毫秒过后就会执行一次onTimeout函数
下面是QT定时器的具体使用示例
cpp文件
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //绑定定时器信号 connect(timer, SIGNAL(timeout()), this, SLOT(onTimeout())); timer->start(1000); } MainWindow::~MainWindow() { delete ui; } void MainWindow::onTimeout() { qDebug()<< "定时器发生信号" <<endl; numFlag++; if(this->numFlag == 10) { timer->stop(); } }
头文件
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QTimer> #include <QDebug> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void onTimeout();//定时器执行函数 private: Ui::MainWindow *ui; QTimer *timer = new QTimer; int numFlag = 0;//定时器执行次数 }; #endif // MAINWINDOW_H