1. 程式人生 > 實用技巧 >QT Qobject定時器的詳細使用方法和注意點

QT Qobject定時器的詳細使用方法和注意點

qt有定時器我知道的有三種,一個是sleep,一個是time類,一個QObject自帶的定時方法.我現在喜歡用這個

1  定義一個全域性的變數用於記錄定時器id,需要幾個定時器就定義幾個id.注意初始化id時候最好設定為0,因為  重複執行killTimer(0)不會報錯

int temtimerID01 = 0 ;
// int QObject::startTimer ( int interval ) ;   //正常情況下ID應該儲存為全域性變數
// void QObject::timerEvent ( QTimerEvent * event );//在這個裡面判斷時不時這個ID,做相應的處理
// void QObject::killTimer ( int id );      //通過ID殺死當前定時器

2  在public中重寫這個函式,所有的中斷事件都在這裡面處理

具體實現如下  記得新增標頭檔案  #include <QTimerEvent>

3  使用如下

  killTimer(timerID01);//開啟一幀資料傳輸之後,開啟定時器.開啟前先關掉以前的定時器
    timerID01 = startTimer(3000);//三秒定時//後期根據實際情況反映//不過3秒應該夠了

4  注意點:

  killTimer(timerID01);時候如果timerID是0,則不管kill幾次都可以,但是其他情況多次kill可能出錯,因此在每次正常情況kill之後都加上一句timrID=0,親測可以使用