1、singleShot
原型:void QTimer::singleShot(int msec, const QObject *receiver, const char *member)
解释:这个静态函数在一个给定时间间隔 msec(毫秒) 之后调用一个槽。
用法1 :
假设类A有个槽函数 function() { }
我们要在1s之后执行它
QTimer::singleShot(1000,this, &A::function());
用法2:
实现循环
槽函数中还是singleShot 即:
//这样的话就是一个每1秒执行一次的定时器
bool condition = true;
function(){
if(condition){ //条件控制
QTimer::singleShot(1000,this, &A::function());
}
}
2、timerEvent
函数原型:[virtual protected] void QObject::timerEvent(QTimerEvent *event)
解释:QObject提供的定时器通过startTimer(int interval)启动,该函数启动了一个时间间隔为interval毫秒的定时器,启动成功只返回一个定时器标志符,失败返回0,因为只返回一个标志符,所以无法获得该定时器的对象,它是QObject的成员函数,及不能正常的使用信号与槽,只能通过重载定时器事件处理函数timerEvent,在里面写定时器触发要做的事。
如果有多个定时器,可以通过QTimerEvent::timerId()来获取已