Wyświetlanie czasu
-
Witam
Napisałem program, który ma mierzyć czas jaki upłynął od zdarzenia X, wszystko działa kiedy wyświetlam czas w sekundach ,
problem zaczyna się gdy chcę wyświetlić czas w formacie hh:mm:ss. Próbuję to zrobić w dość prymitywny sposób:
co sekundę zwiększam zmienną odpowiedzialną za sekundy i po osiągnięciu przez nią wartości 59 zwiększam o jeden zmienną odpowiedzialną za minuty kiedy ona osiągnie wartość 59 zwiększam zmienną odpowiedzialną za godziny. Wszystko w pętli powtarzane co sekundęui->setupUi(this); QTimer *timer = new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(on_pushButton_clicked())); timer->start(1000);
void MainWindow::on_pushButton_clicked() { query = QSqlQuery(db); query.exec("SELECT * FROM `wezwanie`"); query.first(); if (query.isActive()) { ui->statusBar->showMessage("Connected"); query.first(); while(query.next()) { if(query.value(3)=="1" && query.value(0)=="14") { ui->lmitpixkjp->show(); lcdmitsui1++; ui->lcdmitsui->display(lcdmitsui1); if (lcdmitsui1==59) { m14k++; lcdmitsui1=0; ui->lcdmitsui_2->display(m14k); } if (m14k>=59) { h14k++; m14k=0; ui->lcdmitsui_2->display(0); ui->lcdmitsui_3->display(h14k); } }
Problem w tym że po osiągnięciu przez zmienną minut (m14k) wartości 59 LCD nie zeruje się i liczy dalej 60, 61 ...
Dziwne jest to że po osiągnięciu wartości 99 zaczyna wskazywać dobrze.Może ktoś wpadnie na pomysł co zrobiłem źle lub zna inny sposób na wyświetlenie upływającego czasu w formacie hh:mm:ss
-
-
@artwaw dziękuję za Twój czas i wiedzę, nie poradziłem sobie z
elapsed()
, ale użyłem innego rozwiązania.if(query.value(3)=="1" && query.value(0)=="14") { ui->lmitpixkjp->show(); t14++; s=t14%60; m=t14/60%60; h=t14/3600; ui->lcdmitsui->display(h); ui->lcdmitsui_2->display(m); ui->lcdmitsui_3->display(s); }