qt有兩種定時器,一種是qobject類的定時器,另一種是qtimer類的定時器。
(1)qobject類的定時器
qobject類提供了乙個基本的定時器,通過函式starttimer()來啟動,通過killtimer()來結束,通過qtimerevent來處理定時器事件。
int starttimer(int interval, qt::timertype timertype = qt::coarsetimer);
void killtimer(int id);
void qobject::timerevent(qtimerevent * event);
starttimer(int interval)啟動乙個時間間隔為interval毫秒的定時器,返回乙個定時器識別符號,如果未能啟動成功,則返回0。
該定時器只能使用killtime()來殺死,killtimer(int id)通過定時器識別符號來殺死定時器。
如果有多個定時器,可以通過qtimerevent::timerid()來獲取已經啟動的定時器識別符號。
(2)qtimer類的定時器
qtimer類定時器是qobject類定時器的擴充套件版或者說公升級版,因為它可以提供更多的功能。比如說,它支援單次觸發和多次觸發。
使用qtimer類定時器的步驟:
(1)建立乙個qtimer定時器例項:qtimer *timer = new qtimer(this);
(2)連線超時訊號與槽:connect(timer, signal(timeout()), this, slot(testfunc()));
(3)啟動定時器start();
(4)適時關閉定時器:stop();
(5)刪除定時器例項:delete timer;
公共函式:
int interval() const 獲得定時器時間間隔
bool isactive() const 獲得定時器啟用狀態
bool issingleshot() const 獲得單次觸發使能狀態
int remainingtime() const 獲得距離觸發定時器事件的剩餘時間
void setinterval(int msec) 設定定時器時間間隔
void setsingleshot(bool singleshot) 設定使能/禁用單次觸發
void settimertype(qt::timertype atype) 設定定時器型別
int timerid() const 獲得定時器識別符號
qt::timertype timertype() const 獲得定時器型別
公共槽函式:
void start(int msec) 啟動定時時間間隔為msec毫秒的定時器
void start() 啟動定時器
void stop() 暫停定時器
訊號:
void timeout() 超時
Qt中兩種定時器用法
原文在這裡 在qt中使用定時器有兩種方法,一種是使用qobiect類的定時器 一種是使用qtimer類。定時器的精確性依賴於作業系統和硬體,大多數平台支援20ms的精確度。1.qobject類的定時器 qobject是所有qt物件的基類,它提供了乙個基本的定時器。通過qobject starttim...
Qt中兩種定時器用法
在qt中使用定時器有兩種方法,一種是使用qobiect類的定時器 一種是使用qtimer類。定時器的精確性依賴於作業系統和硬體,大多數平台支援20ms的精確度。1.qobject類的定時器 qobject是所有qt物件的基類,它提供了乙個基本的定時器。通過qobject starttimer 可以把...
Qt中兩種定時器用法
在qt中使用定時器有兩種方法,一種是使用qobiect類的定時器 一種是使用qtimer類。定時器的精確性依賴於作業系統和硬體,大多數平台支援20ms的精確度。1.qobject類的定時器 qobject是所有qt物件的基類,它提供了乙個基本的定時器。通過qobject starttimer 可以把...