QTime为新对象添加秒数

时间:2016-06-13 06:19:53

标签: c++ qt5.5 qtime

我正在使用QT5.51。为什么t1无效?:

QTime t1 = QTime().addSecs(122);
qDebug() << t1.isValid() << t1.toString("hh:mm:ss");

我希望得到“00:02:02”,但我得到了错误的“”。

2 个答案:

答案 0 :(得分:3)

新的默认构造的QTime对象以无效状态启动。在无效时间添加秒数会使其无效 - 毕竟,它是一个无效的时间点,而不是您所期望的午夜。它几乎是一种NaN型行为。

http://doc.qt.io/qt-5/qtime.html#QTime

  

构造一个null时间对象。空值时间可以是QTime(0, 0, 0, 0)(即午夜)对象,但isNull()返回trueisValid()返回false除外。

http://doc.qt.io/qt-5/qtime.html#addSecs

  

如果此时间无效,则返回空时。

答案 1 :(得分:3)

我想我明白了:

QTime t1(0,0,0,0);
t1 = t1.addSecs(122);
qDebug() << t1.isValid() << t1.toString("hh:mm:ss");

= true "00:02:02"