QT QTimer定时器的暂停,开启和重新启动问题
关于QT QTimer定时器中的 stop(),start(),setInterval(msec)三个函数问题,讨论并记录定时器在暂停后启动的样态,和解决需要重新启动定时器的问题。
文章共578字 · 阅读需要大约2分钟
一键AI生成摘要,助你高效阅读
问答
·
问题:QTimer定时器在工作中执行stop();
函数后,再start();
其结果
- 回答:
QT在Linux版本中,再次start()
,QTimer定时器会保持之前的计时记录,并在之前的样态上继续工作,这一点可以验证。
也就是说,QTimer定时器start();
之后,并不会重新计时。。。。
问题:QTimer定时器,若是需要重新启动,该如何处理
- 回答:
处理的方案一:
通过函数killTimer(int QTimer_id);
函数把现在停止的QTimer定时器释放掉,然后重新创建定时器,达到重新启动的目的。
QTimer *Ptimer = new QTimer;
int Timer_id = Ptimer->start(1000); /*定时器的id是通过start()函数返回*/
以上是创建部分,下面的代码是QTimer定时器需要释放时的删除函数。
...
killTimer(Timer_id);
...
- 回答:
处理的方案二:
通过QTimer::setInterval(msec);
函数,对暂停的定时器,重新填装定时器触发值。重新填装的定时器,再通过start()
后,QTimer定时器便重新启动计时。
QTimer *Ptimer = new QTimer;
int Timer_id = Ptimer->start(1000); /*定时器的id是通过start()函数返回*/
以上是创建部分,下面的代码是QTimer定时器使用重新填装函数进行重新启动。
...
Ptimer->setInterval(1000);
Ptimer->start();
...
更多推荐
已为社区贡献1条内容
所有评论(0)