Ich mache einen Timer/Stoppuhr mit Qt Creator. Aber meine Reset-Funktion (Reset-Taste geklickt) funktioniert nicht so, wie ich es möchte. Ich möchte, dass es den Timer stoppt und die Anzeige (QLCDNumber) auf 0 setzt. Stattdessen wird der Timer gestoppt, aber die Display-Nummern bleiben gleich, als ob die Pause-Taste geklickt wurde. Nur wenn der Timer erneut gestartet wird (Startknopf geklickt), startet er von der ursprünglichen Zeit (wie ich es möchte) neu. Hier ist der Code.Qt QLCDummer Problem
Ich nur die Teile, die Teil des Problems sind.
void MainWindow::delay()
{
QTime dieTime = QTime::currentTime().addSecs(1);
while (QTime::currentTime() < dieTime && !spause && !sreset)
{
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
std::this_thread::sleep_for(std::chrono::milliseconds(1));
}
}
void MainWindow::on_tstart_clicked()
{
ttime = treset ? 0 : ttime;
tpause = treset = false;
ttime = ttime == 0 ? (ui->hr->value() * 3600 + ui->min->value() * 60 + ui->sec->value()) : ttime;
while (ttime >= 0 && !tpause && !treset)
{
const unsigned short sec = ttime % 3600 % 60, min = ttime % 3600/60, hr = ttime/3600;
ui->tsec2->display(sec % 10);
ui->tsec1->display(sec/10);
ui->tmin2->display(min % 10);
ui->tmin1->display(min/10);
ui->thr2->display(hr % 10);
ui->thr1->display(hr/10);
delay();
if (!tpause && !treset) --ttime;
}
}
void MainWindow::on_tpause_clicked()
{
tpause = true;
}
void MainWindow::on_treset_clicked()
{
treset = true;
ui->ssec2->display(0);
ui->ssec1->display(0);
ui->smin2->display(0);
ui->smin1->display(0);
ui->shr2->display(0);
ui->shr1->display(0);
}
Pro-Tipps zum Posten: (a) wir verwenden [gelöst] nicht im Titel hier; (b) post-Lösungen unten, anstatt als Bearbeitungen; (c) Wenn Sie Ihr ursprüngliches Problem lösen, aber eine neue Frage haben, dann ändern Sie die Frage nicht, es sei denn, die Änderung ist sehr klein und Sie haben noch keine Antworten. – halfer
Außerdem sehe ich, dass Sie in Ihrer Frage einen Code bearbeitet haben, als Sie ihn gelöst haben. Wenn das das Problem war, dann bitte rückgängig machen, so dass Ihre Frage eine genaue Darstellung des Problems ist. Es hat keinen Sinn auf dieser Seite eine Antwort ohne Frage zu halten. – halfer
@halfer Sorry! Wird tun, was du sagst. – cppxor2arr