18 定时器事件

18.1 基于信号——槽的定时器编程

用QTimer类创建定时器对象,调用该对象的start方法启动定时器。该方法的参数为以毫秒为单位的定时周期。此后每隔指定毫秒,定时器对象即发送一个timeout信号。通过将该信号连接到某个槽函数,实现定时任务。想要停止定时器,只需调用定时器对象的stop方法即可。

18.2 基于事件的定时器编程

任何QObject类的子类对象都可以调用其继承自基类的startTimer方法启动定时器。该方法的参数为以毫秒为单位的定时周期。此后每隔指定毫秒,系统都会触发一次定时器事件。QObject类的timerEvent虚函数会被调用。通过覆盖该虚函数,实现定时任务。想要停止定时器,只需调用继承自QObject类的killTimer方法即可。

18.3 案例

18.3.1 创建项目

通过QtCreator,在C:\Users\Minwei\Projects\Qt路径下,创建名为Timer的项目。

18.3.2 设计界面

C:\Users\Minwei\Projects\Qt\Timer\timerdialog.ui:

18.3.3 实现功能

C:\Users\Minwei\Projects\Qt\Timer\timerdialog.h:

C:\Users\Minwei\Projects\Qt\Timer\timerdialog.cpp:

18.3.4 测试验证

运行效果如图所示: