1.QTimer简介
QTimer 主要的属性是 interval,是定时中断的周期,单位毫秒。QTimer 主要的信号是 timeout(),在定时中断时发射此信号,要想在定时中断里做出响应,这就需要编写 timeout() 信号的槽函数。
2.常用API
//设置步长
setInterval(int msec)//设置定时器是否只触发一次,默认为false
setSingleShot(bool singleShot)//开启定时器
start()//停止定时器
stop()//signal
timeout()//静态方法,只触发一次定时器
singleShot(int msec, const QObject *receiver, const char *member)//使用
QTimer::singleShot(1000,this,SLOT(on_timeout()))
3.示例
显示一个自增的读秒器
//.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTimer>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private slots:void on_pushButtonStart_clicked();void on_pushButtonPause_clicked();void on_timeOut();private:Ui::Widget *ui;QTimer *m_timer = nullptr;int m_i = 0;
};#endif // WIDGET_H
//.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);m_timer = new QTimer(this);m_timer->setInterval(1000);connect(m_timer,&QTimer::timeout,this,&Widget::on_timeOut);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButtonStart_clicked()
{m_timer->start();ui->pushButtonStart->setEnabled(false);ui->pushButtonPause->setEnabled(true);
}void Widget::on_pushButtonPause_clicked()
{m_timer->stop();ui->pushButtonStart->setEnabled(true);ui->pushButtonPause->setEnabled(false);
}void Widget::on_timeOut()
{m_i++;ui->lcdNumber->display(m_i);
}