2010-06-17 30 views
0

我有一個QTimeEdit,我想設置一些值,每秒我想減1顯示QTimeEdit的值。所以當它是0時,我想要有一個QMeesageBox,上面寫着「你的時間已經到了」。我可以用QTimeEdit接口怎麼做,或者我應該使用QTimer?Qt - QTimeEdit作爲定時器查看器

回答

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 
} 
+0

addSecs(int類型)不起作用。我正在使用Qt 4.6.2。有沒有人遇到過這個問題? – Narek 2010-06-18 18:09:22

+0

Woops對不起在我的回答中發生了錯誤。現在已經修復了。 – Job 2010-06-18 19:29:00

+0

另外,我已經把2分鐘,它談到0秒,並沒有進入「如果」的聲明。不明白爲什麼。 – Narek 2010-06-19 06:44:35