Я пытаюсь использовать 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;
}
}
Помогите, оценили спасибо …
Это локальная переменная, а не d->timer
:
QTimer *timer = new QTimer(this);
Тем не менее, здесь вы проверяете, если некоторые d->timer
активен:
qDebug()<< "Count2" << d->timer->isActive();
И через строку вы ссылаетесь на timer
не d->timer
снова:
timer->stop();
Может быть, вам нужно решить, какой таймер вы хотите использовать, и придерживаться его 🙂
Других решений пока нет …