[問題] qt倒數計時

看板C_and_CPP作者 (ben)時間13年前 (2011/04/17 17:03), 編輯推噓1(105)
留言6則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux QtCreator 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) No 問題(Question): 在QT想要實作一個Label顯示倒數計時的數字 餵入的資料(Input): 使用以下程式碼來做倒數計時 ... #include <QTest> main function { 以上略.... change_status("3"); change_status("2"); change_status("1"); ..... } void MainWindow::change_status(QString string) { ui->label->setText(string); QTest::qWait(1000); } 預期的正確結果(Expected Output): 本來預期會出現 label出現3 暫停一秒 出現2 暫停一秒 出現1 暫停一秒 錯誤結果(Wrong Output): 視窗等待3秒後出現 label變成1 程式碼(Code):(請善用置底文網頁, 記得排版) 同上 補充說明(Supplement): 我是想利用類似sleep的方式來慢慢地更改倒數計時的顯示文字 不知道有沒有其他方法可以達到倒數計時的功能(倒數秒數不固定) 先謝謝各位的幫忙囉 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.131.12

04/17 17:12, , 1F
我想你可以試試 timer 之類的東西
04/17 17:12, 1F

04/17 17:27, , 2F
我也有看到timer 但他要用slot 那不同秒數要寫不同slot?
04/17 17:27, 2F

04/17 19:03, , 3F
timer一秒觸發一次,每次都把 counter 減一就行了 XD
04/17 19:03, 3F

04/17 19:45, , 4F
Drawing event 是在 QApplication::exec() 之後才開始,
04/17 19:45, 4F

04/17 19:46, , 5F
你寫在 main function 裡面的東西會在第一個繪圖事件開始
04/17 19:46, 5F

04/17 19:47, , 6F
前做完, 所以 "3"->1s->"2"->1s->"1"->1s->繪製視窗
04/17 19:47, 6F
文章代碼(AID): #1DggpaRV (C_and_CPP)