第一次写博客,其实之前也有这样的想法了,不过一直没有实行。
言归正传,最近我在学习Qt,用到了定时器,于是就想在主窗口类中实现timerEvent事件来处理一些过程,但是发现我在主窗口类中定义的QTimer类对象就算调用了start方法,timerEvent事件还是没有触发,但是通过QObject::startTimer()方法启动的定时器却能触发timerEvent事件。上网一查没有看到别人问过类似的问题。但是从别的地方找到了问题的所在。其中有一句话是这么说的,“timerEvent不支持像单触发定时器或信号那样的高级水平”。原来QTimer类对象其实就是所说的单触发定时器,所以timerEvent不能处理QTimer类对象。
因此,要使用QTimer定义的对象来计时,应该使用timeout信号来连接到适当的槽来实现想要的功能,而timerEvent事件则用来响应QObject::startTimer()开启的定时器。