Задать вопрос

Таймер Qt: как лучше сделать отсчет времени?

По функционалу программы предполагает, что у пользователя будет 60 секунд, чтобы совершить действие. Также он сможешь приостановить счетчик. Как лучше организовать это: QTimer или циклом с задержкой в секунду?
QTimer`ом не очень понял как сделать паузу. Источников много, а сделать так и не смог.
И с задержкой не разобрался. QThread или есть еще способы? С QThread sleep также не смог пока сделать.

Прошу помощи.
  • Вопрос задан
  • 7683 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@tugo
DerClass::DerClass(QObject * parent)
    : QObject(parent)
    , mTimer(new QTimer(this)   
{
    connect(mTimer, SIGNAL(timeout()), this, SLOT(update()));
    mTimer->start(1000);
    mSecondsToEnd = 60;
}

DerClass::update()
{
    --mSecondsToEnd;
    if ( mSecondsToEnd > 0)
    {
        QStiring time = QString::number(mSecondsToEnd);
        ui->backTimerTextLabel->setText("Осталось " + time + " секунд" );
    }
    else
    {
        mTimer->stop();
        doWork();
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@DancingOnWater
Решение в лоб - использовать QTimer вместе с QTimerElapsed
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы