QT教程 1 4 定時器

2021-10-17 20:13:13 字數 2089 閱讀 5144

在進行視窗程式的處理過程中, 經常要週期性的執行某些操作, 或者製作一些動畫效果,看似比較複雜的問題使用定時器就可以完美的解決這些問題, 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 此函式開啟乙個定時器,但只返回該定時器的編號,我們無法獲取定時器物件 即使建立了定時器物件也不應...