QTimer定时器的使用

转载:https://blog.csdn.net/Andy_93/article/details/52776283?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

QTimer *timer = new QTimer(this);//创建一个定时器类的对象

//信号槽:timer 超时后会发出timeout()信号
connect(timer, SIGNAL(timeout()), this, SLOT(onTimeout()));

3、在需要开启定时器的地方调用void QTimer::start ( int msec );
这个start函数参数也是毫秒级别;
timer->start(msec );			//这一步与下面三步作用应该相同

timer.SetInterval(500);			//设置定时周期(毫秒级)
timer.SetSingleShot(flase);		//设置单次触发还是连续定时(默认为flase-连续触发)
timer.start();					//定时开始


4、 在自己的超时槽函数里面做超时处理。
以下是QTimer定时器类具体使用简单例子:

mytimer.h

#ifndef _MYTIMER_H
#define _MYTIMER_H
 
#include <QObject>
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

mytimer.cpp

#include "mytimer.h"
 
#include<QDebug> 
#include <QTimer>
 
#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();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值