QT 3種定時器的使用

2021-09-21 01:23:19 字數 2117 閱讀 4464

1.qtimer(重複和單發計時器)

應用qtimer時,先建立乙個qtimer類,利用connect將timeout()與對應槽函式連線,在呼叫start()函式設定定時器時間間隔,每經過設定時間後,定時器會發出乙個timeout(),相應的槽函式就會被觸發,直到呼叫stop()函式停止。

qtimer *timer = new qtimer(this);

connect(timer,signal(timeout()),this,slot(function));

timer->start(1000);

也可以不用定義qtimer類,直接呼叫qtimer的成員函式singleshot(),定時器只執行一次

qtimer::singleshot(200,this,slot(updatecaption()));//200/1000秒後啟動功能函式
2.成員函式

1)void qtimer::singleshot(int msec,qt::timertype timetype,const qobject *receiver,const *member)//在規定的時間間隔呼叫函式

舉例:  #include < qtimer>

int main(int argc,char *ar**)

//功能表述,在10分鐘後,應用程式將關閉

2)void qtimer::start(int msec);

啟動或者重啟伺服器,msec為時間間隔,沒有引數時,時間間隔為0.

3)void qtimer::stop();

停止計時器

4)void qtimer::timeout();

當定時器時間到時,訊號被發射。

5)int qtimer::timerid()

返回正在執行的計時器的id號,否則返回為-1

3.qobject類的定時器

qobject是所有qt物件的基類,它提供了乙個基本的定時器。通過qobject::starttimer(),可以把乙個一毫秒為單位的時間間隔作 為引數來開始定時器,這個函式返回乙個唯一的整數定時器的識別符號。這個定時器開始就會在每乙個時間間隔"觸發",直到明確的使用這個定時器的識別符號來呼叫 qobject::killtimer()結束。

當定時器觸發時,應用程式會傳送乙個qtimerevent。在事件迴圈中,處理器按照事件佇列的順序來處理定時器事件。當處理器正忙於其它事件處理時,定時器就不能立即處理。

qobject類還提供定時期的功能。與定時器相關的成員函式有:starttimer()、timeevent()、killtimer()。

qobject基類中的starttimer()和timerevent()原型及說明如下:

int qobject::starttimer(int interval);
開始乙個定時器並返回定時器id,如果不能開始乙個定時器,將返回0。定時器開始後,每隔interval毫秒間隔將觸發一次超時事件,直到killtimer()被呼叫來刪除定時器。如果interval為0,那麼定時器事件每次發生時沒有視窗系統事件處理。

virtual void qobject::timerevent(qtimerevent *event);
虛函式timerevent()被過載來實現使用者的超時事件處理函式。如果有多個定時器在執行,qtimerevent::timerid()被用來查詢指定定時器,對其進行操作。

當定時器事件發生時,虛函式timerevent()隨著qtimerevent事件引數類一起被呼叫,過載這個函式可以獲得定時器事件。

定時器的用法如下:

//標頭檔案

class qnewobject : public qobject

;//原始檔

qnewobject::qnewobject( qobject * parent )

:qnewobject( parent )

qnewobject::~qnewobject()

void qnewobject::timerevent( qtimerevent *event )

Qt 定時器的使用

在qt中使用定時器有兩種方法,一種是使用qobiect類的定時器 一種是使用qtimer類。定時器的精確性依賴於作業系統和硬體,大多數平台支援20ms的精確度。1.qobject類的定時器 qobject是所有qt物件的基類,它提供了乙個基本的定時器。通過qobject starttimer 可以把...

QT定時器的使用

使用qtimer定時器類 1 首先建立乙個定時器類的物件 qtimer timer new qtimer this 2 timer 超時後會發出timeout 訊號,所以在建立好定時器物件後給其建立訊號與槽 connect timer,signal timeout this,slot ontimeo...

Qt定時器 QTimer使用

2014 06 17 15 39 1631人閱讀收藏 舉報 qt基本應用 31 作者同類文章x 1 qtimer類提供了定時器訊號和單觸發定時器。qtimer很容易使用 建立乙個qtimer,使用start 並把timeout 連線到槽函式。當這段時間過去了,它將會發射timeout 訊號。2 使用...