Qt下定时器的使用

来源:互联网 发布:淘宝详情页模板怎么做 编辑:程序博客网 时间:2024/06/15 19:13

一、概述

之前发过一篇,写Qt下定时器的使用,现在另发一遍,感觉这个使用方法挺方便,写在这里与大家共享。

二、代码

首先在头文件中声明一个QTimer类的实例,并创建一个槽函数,这个槽函数是用来执行定时器到达定时以后要执行的操作。

class CABCD : public QObject{Q_OBJECT              //用到信号槽,这个声明是必须的public:    CABCD(QObject* parent=0);       //构造函数    ~CABCD();          //析构函数public slots:void slotABCD();    //槽函数publicQTimer  *   m_pTimerABCD;       //定义一个QTimer类对象m_TimerABCD;}


在cpp文件中添加如下代码

include "OptFireFore.h" CABCD::CABCD(QObject* parent) : QObject(parent){m_pTimerABCD = new QTimer(this);     //初始化QTimer对象m_pTimerABCD->start(15000);              //启动定时器设置超时时间15秒connect(m_pTimerABCD, SIGNAL(timeout()), this, SLOT(slotABCD()));}void CABCD::slotABCD(){qDebug() << "ABCD";        //输出ABCD}

三、使用的大体流程总结如下:

首先定义一个QTimer类的对象:m_timerABCD,QTimer类对象有一个信号是timeout(),当定时器超时以后会发出timeout()信号。这时我们只要给timeout()信号关联一个槽函数,接收到timeout()信号后,槽函数进行一些列操作。理所当然,要在头文件定义这个slotABCD,并在cpp文件里创建timeout()与slotABCD函数的关联。start(int)也是QTimer对象的函数,意思是启动定时器,并且设置定时器超时时间。例如:start(100)代表超时时间是100ms。
更进一步我们还可以设置定时器的其他属性,比如只执行一次那么只需要添加一句话:m_pTimerABCD.setSingleShot(true);即可。

楼主发帖不容易,如果帮到你请随便评论两句谢谢。

0 0