我有一个QTimeEdit,我希望将其设置为某个值,每秒我想将显示QTimeEdit的值减少1。因此当它为0时,我想要一个QMeesageBox,上面写着“你的时间已经过去了。”。我可以使用QTimeEdit接口,或者我应该使用QTimer吗?
答案 0 :(得分:3)
您可以使用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
}