QT Qobject定時器的詳細使用方法和注意點
阿新 • • 發佈:2020-11-20
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,親測可以使用