diff --git a/mainwindow.cpp b/mainwindow.cpp index e4dd559..5d6692d 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -355,10 +355,18 @@ void MainWindow::updateTimer() std::chrono::duration diff = nu - m_startTime; m_timeElapsedLabel->setText(msfloatToHumanReadableString(diff.count())); + if (m_timer) { - int interval = int(diff.count()) / 25; - interval = std::max(interval, 18); - interval = std::min(interval, 1000); + int ms = diff.count(); + int interval = 18; + if (ms >= 10000) { + int rem = ms % 1000; + interval = 1000 - rem; + } + else if (ms >= 1000) { + interval = 100; + } + m_timer->start(interval); } }