我正在尝试使用QTimer并且我开始很好,但是当我试图通过使用isActive检查其状态来阻止它时,它总是返回false但是定时器插槽内的代码正在以正确的间隔执行。
这是代码
void CurrentController::currentAction(void)
{
count++;
QTimer *timer = new QTimer(this);
if(count == 1)
{
qDebug()<< "Count" << count;
QObject::connect(timer, SIGNAL(timeout()), this, SLOT(callMethod()));
timer->setInterval(10000);
timer->start();
}
停止计时器
if(count >= 2)
{
qDebug()<< "Count2" <<timer->isActive();
timer->stop();
count = 0;
}
}
帮助表示感谢...
答案 0 :(得分:1)
这是一个局部变量,而不是d->timer
:
QTimer *timer = new QTimer(this);
然而,在这里,您要检查某些d->timer
是否有效:
qDebug()<< "Count2" << d->timer->isActive();
稍后你会引用timer
,而不是d->timer
:
timer->stop();
也许你需要决定你想要使用哪个计时器,并坚持下去:)