我正在尝试在QTime对象中添加/减去时间。
QString time = "10:00:00";
QTime tobj = QTime::fromString(currentTime,"hh:mm:ss");
tobj.addSecs(3600);
qDebugs() << "time:" << tobj;
我希望调试器输出"11:00:00",但它只是保持"10:00:00",为什么会这样,我看得太多了?
你的问题是addSecs()
是一个常量函数: https://doc.qt.io/qt-5/qtime.html#addSecs 它不会修改对象,但返回一个新的 QTime 对象。
解决此问题的一种方法是执行以下操作:
QString time = "10:00:00";
QTime tobj = QTime::fromString(time,"hh:mm:ss").addSecs(3600);
qDebugs() << "time:" << tobj;
在这里,我将QTime::fromString(time,"hh:mm:ss")
的输出与您的调用链接在一起,以addSecs(3600)
设置为tobj
的值将提前 1 小时。