QT QTimer定时器的暂停,开启和重新启动问题

问题: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();
...

你可能感兴趣的:(QT,系列,qt)