我正在用Qt Creator製作計時器/秒錶。但是,我的重置功能(重置按鈕被點擊)沒有按照我的要求工作。我希望它停止計時器並將顯示器(QLCDNumber)設置爲0.相反,計時器停止,但顯示數字保持不變,就像單擊暫停按鈕一樣。除了當定時器再次啓動(點擊開始按鈕)時,它會從原始時間重新開始(正如我希望的那樣)。這是代碼。Qt QLCDNumber問題
我只包含了問題的一部分。
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);
}
發佈的專業提示:(a)我們不在這裏使用[解決]的標題; (b)在下面發佈解決方案,而不是編輯; (c)如果你解決了你的原始問題,但有一個新的問題,那麼不要修改這個問題,除非這個改變非常小,你還沒有任何答案。 – halfer
另外,當你解決問題時,我看到你在你的問題中編輯了一些代碼。如果那是問題,那麼請撤消它,以便您的問題能夠準確地表達問題。在這個網站沒有任何問題沒有問題的答案。 – halfer
@halfer對不起!會按你說的去做。 – cppxor2arr