Qt QTimer定时器

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.示例

显示一个自增的读秒器

Qt QTimer定时器_第1张图片

 

//.h
#ifndef WIDGET_H
#define WIDGET_H

#include 
#include 

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    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);
}

 

你可能感兴趣的:(Qt入门,qt,qtimer,定时器)