我正在使用QT5.51。为什么t1无效?:
QTime t1 = QTime().addSecs(122);
qDebug() << t1.isValid() << t1.toString("hh:mm:ss");
我希望得到“00:02:02”,但我得到了错误的“”。
答案 0 :(得分:3)
新的默认构造的QTime
对象以无效状态启动。在无效时间添加秒数会使其无效 - 毕竟,它是一个无效的时间点,而不是您所期望的午夜。它几乎是一种NaN型行为。
http://doc.qt.io/qt-5/qtime.html#QTime
构造一个null时间对象。空值时间可以是
QTime(0, 0, 0, 0)
(即午夜)对象,但isNull()
返回true
而isValid()
返回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"