【问题标题】:QTime to QTimerQTime 到 QTimer
【发布时间】:2018-08-03 14:12:42
【问题描述】:

如何将 QTime 转换为 QTimer,以便将剩余时间打印到 qDebug? 这是一些代码:

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

我怎样才能每秒从时间中抽出一秒并将剩余的时间打印到qDebug

【问题讨论】:

  • 你想每秒打印一次时间吗?
  • 这正是我想要的。

标签: c++ qt qtimer qtime


【解决方案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();
}

【讨论】:

  • 我的意思是我想从一个时间到 0 每秒打印一次。例如:我想从一个小时打印到 0 秒。谢谢
  • @JoeDoe 例如,如果你输入 12:30:04,你应该打印 12:30:03,然后是 12:30:02,等等。我是对的吗?
  • 是的,你是!这就是我想要的。
  • 哦,这正是我想要的。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多