定时器事件
在之前学习QTimer中实现了定时器的功能,而在QTimer背后是QTimerEvent定时器事件进行支撑的。在QObject中提供了一个timeEvent这个函数。
startTimer | 启动定时器 |
killTimer | 关闭定时器 |
Qt 中在进⾏窗⼝程序的处理过程中,经常要周期性的执⾏某些操作,或者制作⼀些动画效果,使⽤定 时器就可以实现。所谓定时器就是在间隔⼀定时间后,去执⾏某⼀个任务。定时器在很多场景下都会使⽤到,如弹窗⾃动关闭之类的功能等。
Qt中的定时器分为 QTimerEvent 和 QTimer 这2个类。
- QTimerEvent类 ⽤来描述⼀个定时器事件。在使⽤时需要通过 startTimer() 函数来开启⼀个定时 器,这个函数需要输⼊⼀个以毫秒为单位的整数作为参数来表明设定的时间,它返回的整型值代表这个定时器。当定时器溢出时(即定时时间到达)就可以在 timerEvent() 函数中获取该定时器的编号来进⾏相关操作。
- QTimer类 来实现⼀个定时器,它提供了更⾼层次的编程接⼝,如:可以使⽤信号和槽,还可以设置只运⾏⼀次的定时器
例子:使用QTimerEvent设置一个定时器
(1)设置定时器,并初始化初始值
(2)开启定时器事件
此处的timerId是一个定时器的身份标识的。
(3)重写定时器事件函数
如果一个程序中存在多个定时器(startTimer创建的定时器),此时每个定时器都会触发timerEvent函数。需要判定这次触发是否是想要的定时器触发的,如果不是想要的定时器触发的,可以直接忽略;而如果是则再进行相应操作。
(4)执行程序