QT中定时器的使用方法
(1)重载timerEvent(QTimerEvent *)函数
startTimer(50);//单位为毫秒,设置时间间隔
头文件中声明:
void timerEvent(QTimerEvent * event);
cpp文件中实现:
void MainWindow::timerEvent(QTimerEvent * event)
{
if(...)
{
...
}
else if(...)
{
...
}
}
在需要开启定时器的时候进行开启,并将返回值复给一个整形变量:
int t_num = startTimer(50);
需要关闭的时候:
killTimer(t_num);
注意:timerEvent定时执行的内容只有一个,如果我们执行不同的定时器,需要在timerEvent函数内部进行判断操作。而QTimer想执行几个不同的操作,只需要绑定不同的槽函数即可,比较清晰。
(2)QTimer定时器,在类的构造函数中设定如下:
头文件中声明槽函数:
private slots:
void slot_timeout();
cpp文件中实现:
QTimer *timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(slot_timeout()));//slot_timeout()为自定义槽
槽函数:
void MainWindow::slot_timeout()
{
...
}
开启定时器:
timer->start(1000);
关闭定时器:
timer->stop();
删除定时器:
delete timer;
大家在项目中使用定时器,还是根据项目的具体情况而定吧。