QTime, как добавить / вычесть время QT / C ++ - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь добавить / вычесть время в объекте 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 ", почему это и что я смотрю?

1 Ответ

2 голосов
/ 26 января 2020

Ваша проблема: 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 час раньше времени.

...