我有一个QTimeEdit,我想将其设置为某个值,并且每秒钟我想将显示QTimeEdit的值减少1。因此,当它为0时,我想要一个QMeesageBox,上面写着“您的时间到了。”。我可以在QTimeEdit界面上执行一些操作,还是应该使用QTimer?

最佳答案

您可以使用QTimeEdit来显示时间,但是必须使用QTimer来减少时间。

您可以执行以下操作:

timeEdit->setTime(...); //set initial time
QTimer timer;
timer.start(1000); //timer will emit timeout() every second
connect(&timer, SIGNAL(timeout()), this, SLOT(slotTimeout()));

void slotTimeout()
{
    QTime time = timeEdit->time().addSecs(-1);
    timeEdit->setTime(time);

    if (time == QTime(0, 0))
        //time is zero, show message box
}

09-10 01:34