Qt中定時器使用的兩種方法

2021-09-12 08:56:01 字數 2200 閱讀 7164

qt中定時器的使用有兩種方法,一種是使用qobject類提供的定時器,還有一種就是使用qtimer類。

其精確度一般依賴於作業系統和硬體,但一般支援20ms。下面將分別介紹兩種方法來使用定時器。

1、 int qobject::starttimer ( int interval ) ;

這個是開啟乙個定時器的函式,他的引數interval是毫秒級別。當開啟成功後會返回這個定時器的id, 並且每隔interval 時間後會進入timerevent 函式。直到定時器被殺死。

2、 void qobject::timerevent ( qtimerevent * event );

當定時器超時後,會進入該事件timerevent函式,需要重寫timerevent函式,在函式中通過判斷event->timerid()來確定定時器,然後執行某個定時器的超時函式。

3、 void qobject::killtimer ( int id );

通過從starttimer返回的id傳入killtimer 函式中殺死定時器,結束定時器進入超時處理。

以下是qobject中的定時器具體使用簡單例子:

#define _mytimer_h  

#include

class

mytimer

:public qobject ;

#endif

//_mytimer_h

#include

"mytimer.h"

#include

#include

#define timer_timeout (5*1000)

mytimer::

mytimer

(qobject *parent)

:qobject

(parent)

mytimer::

~mytimer()

void mytimer::

timerevent

(qtimerevent *event)

}void mytimer::

handletimeout()

1、 首先建立乙個定時器類的物件

qtimer *timer =

newqtimer

(this

);

2、 timer 超時後會發出timeout()訊號,所以在建立好定時器物件後給其建立訊號與槽

connect

(timer,

signal

(timeout()

),this

,slot

(ontimeout()

));

3、 在需要開啟定時器的地方呼叫

void qtimer::start (

int msec )

;

這個start函式引數也是毫秒級別;

timer-

>

start

(msec )

;

4、 在自己的超時槽函式裡面做超時處理。

以下是qtimer定時器類具體使用簡單例子:

#ifndef _mytimer_h  

#define _mytimer_h

#include

class

qtimer

;class

mytimer

:public qobject ;

#endif

//_mytimer_h

#include

"mytimer.h"

#include

#include

#define timer_timeout (5*1000)

mytimer::

mytimer

(qobject *parent)

:qobject

(parent)

mytimer::

~mytimer()

void mytimer::

handletimeout()

}

致謝:

Qt中定時器使用的兩種方法

qt中定時器的使用有兩種方法,一種是使用qobject類提供的定時器,還有一種就是使用qtimer類。其精確度一般依賴於作業系統和硬體,但一般支援20ms。下面將分別介紹兩種方法來使用定時器。方法一 qobject中的定時器的使用,需要用到三個函式 1 int qobject starttimer ...

QT定時器使用

qtimer類提供了重複和單次觸發訊號的定時器。qtimer類為定時器提供了乙個高階別的程式設計介面。很容易使用 首先,建立乙個qtimer,連線timeout 訊號到適當的槽函式,並呼叫start 然後在恆定的時間間隔會發射timeout 訊號。注意 當qtimer的父物件被銷毀時,它也會被自動銷...

QT中定時器使用辦法

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