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

版权声明:本文为CSDN博主「求丶空白灬」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41707123/article/details/116453866

生成海报
点赞 0

求丶空白灬

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

缤果串口网络调试助手

超级好用的串口网络调试助手 !!! 前言 缤果串口网络调试助手支持常用的50bps - 10Mbps波特率,能设置校验、数据位和停止位,能以ASCII码或十六进制接收或发送任

QT--串口读取数据并展示实时波形图

1.串口读取数据 与下位机,单片机通信少不了使用串口进行通信,Qt 也提供了串口通信的类。 使用的时候在 pro 添加这句导入模块 QT serialport 1.连接串口 第一步就是 要先获取到 可连接的所有的串口的名