Qt下定时器的使用

一、概述

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

二、代码

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

class CABCD : public QObject
{
Q_OBJECT              //用到信号槽,这个声明是必须的

public:
    CABCD(QObject* parent=0);       //构造函数
    ~CABCD();          //析构函数
public slots:
void slotABCD();    //槽函数

public
QTimer  *   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);即可。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值