Russian Qt Forum

Qt => Общие вопросы => Тема начата: Mark_T от Апрель 16, 2011, 10:57



Название: QTimer разбежка времени с системным
Отправлено: Mark_T от Апрель 16, 2011, 10:57
Всем мое здравствуйте! Проблема такая: использую QTimer для отображения часов которые ведут отсчет от заданного вермени. Как положено, время отображаю посекундно. Так вот при сравнении с системным времененм накапливается разбежка порядка 1 секунды в минуту (мое время отстает). Заранее благодарен за советы.

Код:

                hour=timeHspinBox->value();

min=timeMspinBox->value();

sec=timeSspinBox->value();


теперь по событию таймера timeout()

Код:
if (sec<60) {sec++;}

if (sec==60) { sec=0;

   min++;}

if (min==60) {hour++;

  min=0;}

if (hour==24){

   hour=0;  }

timeLabel->setText(QString::number(hour)+"-"+QString::number(min)+"-"+QString::number(sec));


Название: Re: QTimer разбежка времени с системным
Отправлено: SimpleSunny от Апрель 16, 2011, 16:09
Где и как запускаете таймер?

Также проще будет использовать QTime.
Код
C++ (Qt)
QTime time(h, m, s);
time.start();
...
time.toString("hh-mm-ss");


Название: Re: QTimer разбежка времени с системным
Отправлено: kostya2vntu от Апрель 17, 2011, 00:14
В документации по QTimer сказано, что временные интервалы зависят от системного таймера, который допускает разбежности, на винде эта разбежность может составлять до 60мс. Если надо точность - синхронизируйтесь с системным временем типа QDateTime::currentDateTime().