Как перевести милисекунды в нормальное для понимания время

Пишу небольшой плеер, используя QMediaPlayer. Есть сигнал, который срабатывает каждые 1000 миллисекунд.

Мне интересно, можно как-то перевести миллисекунды в нормальное время типа 2:23 (2 минуты двадцать три секунды), или нужно делать 2 виджета; один для минут, а второй для секунд?


Ответы (1 шт):

Автор решения: Alexander Chernin

Воспользуйтесь классом QTime и, например, методом QTime::addMSecs(int ms)

QTime time(0, 0);

time = time.addMSecs(1000);
qDebug() << time; // Вывод в формате hh:mm:ss.zzz QTime("00:00:01.000")

time = time.addMSecs(1000);
qDebug() << time; // QTime("00:00:02.000")

time = time.addSecs(650); // + 650 секунд
qDebug() << time; // QTime("00:10:52.000")

...

Если надо в своем формате, то используем метод QTime::toString(const QString& format)

qDebug() << time.toString("mm.ss"); // 00.02
qDebug() << time.toString("mm:ss"); // 00:02
→ Ссылка