Qt - QTimer(定時器)

[BORUTO]發表於2024-11-29

基本使用方式:

  • 多次定時器
QTimer *timer = new QTimer(this);
//timer->setInterval(1000);//設定間隔時間
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);//start之後,設定間隔時間並啟動定時器,每隔一秒觸發一次槽函式

  • 單次定時器

注意:可以透過設定setSingleShot(true)來讓定時器只執行一次。也可以使用靜態函式QTimer::singleShot():

1. 下面我們用三種實現方式吧,來實現定時器的單次觸發;

實現一

使用QTimer的 setSingleShot 介面實現單次定時器。

QTimer *pTimer = new QTimer(this);
connect(pTimer,SIGNAL(timeout()),this,SLOT(slot_Timerout()));
pTimer->setSingleShot(true);
pTimer->start(1000);

實現二

使用QTimer的 singleShot 介面實現單次定時器。

QTimer *pTimer = new QTimer(this);
pTimer->singleShot(10000,slot_Timerout);

實現三

使用QTimer的 singleShot 靜態介面實現單次定時器,實現簡潔,推薦使用。

QTimer::singleShot(1000,this,SLOT(slot_Timerout()));
QTimer::singleShot(1000,slot_Timerout);//同上,就是引數不同

相關文章