在進行視窗程式的處理過程中, 經常要週期性的執行某些操作, 或者製作一些動畫效果,看似比較複雜的問題使用定時器就可以完美的解決這些問題, qt中提供了兩種定時器方式一種是使用qt中的事件處理函式這個在後續章節會給大家做細緻的講解,本節主要給大家介紹一下qt中的定時器類qtimer
的使用方法。要使用它,只需建立乙個qtimer類物件,然後呼叫其
start()
函式開啟定時器,此後qtimer物件就會週期性的發出timeout()
訊號。
// 建構函式
// 如果指定了父物件, 建立的堆記憶體可以自動析構
qtimer:
:qtimer
(qobject *parent = nullptr)
;// 設定定時器時間間隔為 msec 毫秒
// 預設值是0,一旦視窗系統事件佇列中的所有事件都已經被處理完,乙個時間間隔為0的qtimer就會觸發
void qtimer:
:setinterval
(int msec)
;// 獲取定時器的時間間隔, 返回值單位: 毫秒
int qtimer:
:interval()
const
;// 根據指定的時間間隔啟動或者重啟定時器, 需要呼叫 setinterval() 設定時間間隔
[slot]
void qtimer:
:start()
;// 啟動或重新啟動定時器,超時間隔為msec毫秒。
[slot]
void qtimer:
:start
(int msec)
;// 停止定時器。
[slot]
void qtimer:
:stop()
;// 設定定時器精度
/*引數:
- qt::precisetimer -> 精確的精度, 毫秒級
- qt::coarsetimer -> 粗糙的精度, 和1毫秒的誤差在5%的範圍內, 預設精度
- qt::verycoarsetimer -> 非常粗糙的精度, 精度在1秒左右
*/void qtimer:
:settimertype
(qt:
:timertype atype)
;qt:
:timertype qtimer:
:timertype()
const
;// 獲取當前定時器的精度
// 如果定時器正在執行,返回true; 否則返回false。
bool qtimer:
:isactive()
const
;// 判斷定時器是否只觸發一次
bool qtimer:
:issingleshot()
const
;// 設定定時器是否只觸發一次, 引數為true定時器只觸發一次, 為false定時器重複觸發, 預設為false
void qtimer:
:setsingleshot
(bool singleshot)
;
// 當定時器超時時,該訊號就會發出。
[signal]
void qtimer:
:timeout()
;
// 其他同名過載函式可以自己查閱幫助文件
/*功能: 在msec毫秒後發射一次訊號, 並且只發射一次
引數: - msec: 在msec毫秒後發射訊號
- receiver: 接收訊號的物件位址
- method: 槽函式位址*/[
mysql定時器 教程 Mysql 定時器
定時任務 週期任務 檢視命令 show variables like event sche 顯示的event scheduler為off時用以下命令開啟 set global event scheduler 1 注意 以上的改法在資料庫重啟後將會恢復為原來狀態,要想資料庫重啟後也可以讓event s...
Qt之定時器
qt中定時器的使用有兩種方法,一種是使用qobject類提供的定時器,還有一種就是使用qtimer類。定時器類qtimer提供當定時器觸發的時候發射乙個訊號的定時器,它提供只觸發一次的超時事件。1 啟動定時器 int m timerid starttimer 300 啟動乙個qtimer型別的定時器...
Qt定時器問題
1.如果此類繼承於qobject,可以直接呼叫以下函式 int qobject starttimer int interval,qt timertype timertype qt coarsetimer 此函式開啟乙個定時器,但只返回該定時器的編號,我們無法獲取定時器物件 即使建立了定時器物件也不應...