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 start() 啟動定時器
void stop() 暫停定時器
信號:
void timeout() 超時
http://blog.csdn.net/jan5_reyn/article/details/38955719