需要包含的头文件
#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