QT中利用QTimer实现单个按键控制计数,再点击停止计数

       这篇文章是一个很简单的小练习,就是一个对QTimer的简单使用。(有问题留言噢~~)

       需求是点击按钮文字切换成stop,同时文本框开始计数;再点击按钮,文字切换回start,同时停止计数;再点击继续计数。

示例图如下(背景是widget.ui文件,截图没注意,忽略~~~):

QT中利用QTimer实现单个按键控制计数,再点击停止计数QT中利用QTimer实现单个按键控制计数,再点击停止计数

       接下来就直接上代码叭~

widget.h:

             num用于后面计数加,QTimer是QT里经常用到的定时器类

QT中利用QTimer实现单个按键控制计数,再点击停止计数

 

 

widget.cpp:

        计数显示是1秒加一,第24行体现;第10行:new一个QTimer的对象;on_pushButton_clicked()是在.ui文件里对按钮使用转到槽生成的槽函数,就是实现点击按钮的事件;第一次点击,按钮上的文字由start切换成stop。后面的if else是判断定时器是否在工作,借用QTimer里的isActive()函数,其大概是若定时器在工作,返回true;反之返回false。

       这里,我们捋一下逻辑,为什么if里是“ !”:这是在按钮点击事件的槽函数里,当它处于停止计数状态,点击是让它开始计数;同理,当它处于计数状态,点击是让它停止计数。所以这里可以得知,点击后开始计数是在定时器处于停止现状的。

      27行,定时器停止工作,;28行,按钮文字切换回start

QT中利用QTimer实现单个按键控制计数,再点击停止计数

main.cpp:

 

QT中利用QTimer实现单个按键控制计数,再点击停止计数