最近做的東西需要一個定時調用一個函數完成一定功能,於是學習了一下QTimer定時器的運用。
以下代碼是我憑記憶寫下的,沒有粘貼已經成功的代碼,可能會有的地方打錯之類的,不過基本不會錯,具體可以網上搜索類似的東西解決。
先定義一個計時器
1 QTimer* timer; 2 QObject::connect(timer,SIGNAL(timeout()),this,SLOT(systimer()));/*第一個參數是信號發出者,第二個參數是發出的信號,第三個信號是信號的接收者,第四個參數是調用的函數*/ 3 /*啟動定時器,如果不想這個時候啟動 ,那下面這句到需要的時候再寫*/ 4 timer->start(1000);//時間單位是ms
然后定義一個systimer()函數,這個函數的聲明要寫在頭文件private slot:的下面
1 void systimer() 2 { 3 ...... 4 }
這樣只要在timer->start(1000)之后每隔1S就會調用一次systimer()。知道timer->stop()之后。
但有一個問題要注意,如果這個時候有別的槽函數在響應別的信號(如點擊按鈕的響應函數),那這時候啟動了定時器也沒用。