QT定时器的两种应用(QObject就有timerEvent事件,一种什么样的居心呢?)
Posted 朝闻道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT定时器的两种应用(QObject就有timerEvent事件,一种什么样的居心呢?)相关的知识,希望对你有一定的参考价值。
(1)重载timerEvent(QTimerEvent *)函数,然后再在类的构造函数中设置时间间隔
startTimer(50);//单位为毫秒
(2)在类的构造函数中设定如下:
QTimer *timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(timeoutslot()));//timeoutslot()为自定义槽
timer->start(1000);
可以用槽函数实现 (1)重载timerEvent(QTimerEvent *)函数,然后再在类的构造函数中设置时间间隔
然而:所有Qobject的子类在设置定时器时都不必加载一个Qtimer对象,因为这样造成了资源浪费且需要书写多余的函数,很不方便.最好的办法是重载timerEvent函数,具体写法如下:
再在Gui_DlgViewCtrlDatum的构造函数中设置时间间隔: 这样,每隔50毫秒,函数timerEvent便会被调用一次. 网上又说: 定时器事件的优先级很低,如果需要多个定时器,那么跟踪每一个定时器的ID是很费时的。这种情况下,较好的方法是为每一个定时器创建一个QTimer对象。在每一个时间间隔内,QTimer发出一个timeout()信号。QTimer还支持一次性定时器(只发出一次timeout()信号的定时器)。 |
http://blog.csdn.net/u013394556/article/details/42775213
以上是关于QT定时器的两种应用(QObject就有timerEvent事件,一种什么样的居心呢?)的主要内容,如果未能解决你的问题,请参考以下文章
QT 线程:Getting QObject::startTimer: timers cannot be started from another thread 警告