QT中利用QTimer实现单个按键控制计数,再点击停止计数
这篇文章是一个很简单的小练习,就是一个对QTimer的简单使用。(有问题留言噢~~)
需求是点击按钮文字切换成stop,同时文本框开始计数;再点击按钮,文字切换回start,同时停止计数;再点击继续计数。
示例图如下(背景是widget.ui文件,截图没注意,忽略~~~):
接下来就直接上代码叭~
widget.h:
num用于后面计数加,QTimer是QT里经常用到的定时器类
widget.cpp:
计数显示是1秒加一,第24行体现;第10行:new一个QTimer的对象;on_pushButton_clicked()是在.ui文件里对按钮使用转到槽生成的槽函数,就是实现点击按钮的事件;第一次点击,按钮上的文字由start切换成stop。后面的if else是判断定时器是否在工作,借用QTimer里的isActive()函数,其大概是若定时器在工作,返回true;反之返回false。
这里,我们捋一下逻辑,为什么if里是“ !”:这是在按钮点击事件的槽函数里,当它处于停止计数状态,点击是让它开始计数;同理,当它处于计数状态,点击是让它停止计数。所以这里可以得知,点击后开始计数是在定时器处于停止现状的。
27行,定时器停止工作,;28行,按钮文字切换回start
main.cpp: