QTime to QTimer

Как я могу преобразовать QTime в QTimer, чтобы я мог напечатать оставшееся время qDebug? Вот некоторый код:

QTime time = QTime::fromString("23:54", "hh:mm");

Как я могу отнимать одну секунду от времени каждую секунду и печатать оставленное время, чтобы qDebug?

1 ответ

Решение

Вы просто должны использовать QTimer который срабатывает каждую секунду, то вы должны уменьшить время с addSecs(-1) и распечатайте его в соответствующем формате:

#include <QCoreApplication>
#include <QTimer>
#include <QTime>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QTimer timer;

    QTime time = QTime::fromString("23:54", "hh:mm");

    QObject::connect(&timer, &QTimer::timeout, [&time](){
        time = time.addSecs(-1);
        qDebug()<<time.toString("hh:mm:ss");
    });
    timer.start(1000);

    return a.exec();
}
Другие вопросы по тегам