QT 在启用定时器的时候,需要用到QTimer->start(1000),这样设定1000毫秒,执行一次,QTimer->stop()这样停止定时器,那么在定时器执行的时候,我怎么判断定时器正在工作呢?需要用到QTimer的isActive()这个函数,具体如下。
下面是一个案例
QTimer* m_pTimer = new QTimer(this);//实例化对象
//绑定信号槽,定时器超时,就执行槽函数
connect(m_pTimer,SIGNAL(timeout()),this,SLOT(slot_refresh()));
m_pTimer->start(1000); //开启定时器,这句是在需要开启定时器的时候使用,位置不固定
m_pTimer->stop(); //停止定时器,这句是在需要停止定时器的地方使用,位置不固定
槽函数slot_refresh()中的内容:
void MainWindow::slot_refresh()
{
if(m_pTimer->isActive())//判断定时器是否在工作,重点!!!
{
qDebug() << "定时器正在工作。";
}
else
{
qDebug() << "定时器停止工作";
}
}