QT定時調用槽函數的實現

來源:互聯網
上載者:User

最近做的東西需要一個定時調用一個函數完成一定功能,於是學習了一下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()之後。

但有一個問題要注意,如果這個時候有別的槽函數在響應別的訊號(如點擊按鈕的響應函數),那這時候啟動了定時器也沒用。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.