-
目录
一.QTimer,定时器的使用
一、头文件
#include<QTimer>//定时器头文件
二、定义
public:
QTimer* Hytimer;//创建QTimer指针
三、声明
Hytimer = new QTimer(this);//在堆区开辟一个定时器类,由系统自动释放
四、使用
//方法一:
Hytimer->singleShot(3000,this,rock);
//这种方法定时器只执行一次,第一个参数是时间毫秒,第二个单位是指针,第三个单位是响应函数应该是rock(),但是写上只需要写函数名字就可以了,但是函数必须现在public定义才可以使用;
//方法二:
Hytimer->start(3000);//定时器开启,设置定时器时间为3000毫秒
//使用信号和槽构建定时器,开启定时器start 触发timeout信号,然后执行lambda表达式
connect(Hytimer, &QTimer::timeout, [=]() {//定时器
static int Ytimer = 0;
Ytimer++;
qDebug() << "Ytimer的值为:" << Ytimer;
if (Ytimer == 1)
{
rock();
Ytimer = 0;
}
});
//停止计时器方法:
if (Hytimer->isActive())//检测定时器是否启动了,启动了则停止
{
Hytimer.stop();//停止定时器
}
else{return;}
//开启计时器方法
if (Hytimer->isActive())//检测定时器是否启动了,停止了则启动
{
return; }
else{Hytimer->start();}
//也可以调用另一个函数来停止定时器,这种方法下,定时器只会执行一次。跟上述方法同理。
//Hytimer->setSingleShot(true);//停止计时器