QT定时器的使用

QT定时器的使用

使用QTimer定时器类

1、 首先创建一个定时器类的对象

QTimer *timer = new QTimer(this);

2、 timer 超时后会发出timeout()信号,所以在创建好定时器对象后给其建立信号与槽

connect(timer, SIGNAL(timeout()), this, SLOT(onTimeout()));

3、 在需要开启定时器的地方调用void QTimer::start ( int msec );

这个start函数参数也是毫秒级别;

timer->start(msec );

4、 在自己的超时槽函数里面做超时处理。

以下是QTimer定时器类具体使用简单例子:

#ifndef _MYTIMER_H  
#define _MYTIMER_H  
  
#include   
class QTimer;  
class MyTimer : public QObject  
{  
    Q_OBJECT  
  
public:  
    MyTimer(QObject* parent = NULL);  
    ~MyTimer();  
public slots:  
    void handleTimeout();  //超时处理函数==》相当于中断服务函数 
private:  
    QTimer *m_pTimer;  
};  
#endif //_MYTIMER_H 
#include "mytimer.h"  
  
#include   
#include   
  
#define TIMER_TIMEOUT   (5*1000)  
  
MyTimer::MyTimer(QObject *parent)  
    :QObject(parent)  
{  
    m_pTimer = new QTimer(this);//定义定时器类的对象  
    connect(m_pTimer, SIGNAL(timeout()), this, SLOT(handleTimeout())); //连接定时器中断服务函数
    m_pTimer->start(TIMER_TIMEOUT);  //设置定时时间
}  
  
MyTimer::~MyTimer()  
{  
      
}  
  
void MyTimer::handleTimeout()  
{  
    qDebug()<<"Enter timeout processing function\n";  
    if(m_pTimer->isActive()){  
        m_pTimer->stop();  
    }  
}  

你可能感兴趣的:(QT5学习笔记,qt5)