Qtimer isActive () возвращает false, но разрушает

Я пытаюсь использовать 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

Решение

Это локальная переменная, а не d->timer:

QTimer *timer = new QTimer(this);

Тем не менее, здесь вы проверяете, если некоторые d->timer активен:

qDebug()<< "Count2" << d->timer->isActive();

И через строку вы ссылаетесь на timerне d->timer снова:

timer->stop();

Может быть, вам нужно решить, какой таймер вы хотите использовать, и придерживаться его 🙂

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]