Я делаю таймер/секундомер с Qt Creator. Но моя функция сброса (кнопка сброса нажата) не работает так, как я этого хочу. Я хочу, чтобы он остановил таймер и установил отображение (QLCDNumber) на 0. Вместо этого таймер остановлен, но номера дисплея остаются такими же, как если бы была нажата кнопка паузы. За исключением того, что когда таймер запускается (кнопка запуска нажата) снова, он перезапускается с исходного времени (как я этого хочу). Вот код.Qt QLCDNumber issue
Я включил только части, которые являются частью проблемы.
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);
}
Советы для публикации: (а) мы не используем [разрешено] в заголовке здесь; (b) последующие решения ниже, а не как изменения; (c) если вы решите свою исходную проблему, но имеете новый вопрос, тогда не изменяйте вопрос, если это изменение очень мало и у вас пока нет ответов. – halfer
Кроме того, я вижу, что вы редактировали какой-то код в своем вопросе, когда вы его решили. Если это была проблема, пожалуйста, отмените ее, чтобы ваш вопрос был точным представлением проблемы. На этом сайте нет смысла поддерживать ответ без лишних вопросов. – halfer
@halfer Извините! Будет делать, как вы говорите. – cppxor2arr