实现定时器的多种方法
- QTimer类
- QTimerEvent
QTimer类
QTimer
可以通过设定超时时间并调用start
函数,以固定频率发送timeout
信号。
使用
1 |
|
注意
- 使用
setSingleShot(true)
或静态函数QTimer::singleShot()
实现单次定时器; - 当父对象销毁时,
QTimer
对象也会跟着销毁; - 精度取决于
硬件和操作系统
以及QTimerType
QTimerType::PreciseTimer
=0:保持毫秒级精度;QTimerType::CoarseTimer
=1:保持精度在设定值的5%;QTimerType::VeryCoarseTimer
=2:保持精度在500毫秒。
QTimerEvent
QTimerEvent
的使用需要搭配QObject::startTimer
,即类需继承自QObject
且实现timerEvent
事件处理器。
使用
1 |
|
注意
此方法无法实现类似QTimer::singleShot
这种单次定时器以及信号的高级用法。