QTimersingleShot 簡單用法

所述 QTimer::singleShot 用於呼叫一個時隙/λ 非同步經過 n 毫秒。

基本語法是:

QTimer::singleShot(myTime, myObject, SLOT(myMethodInMyObject()));

myTime 表示 ms 的時間, myObject 是包含方法的物件, myMethodInMyObject 是要呼叫的槽

因此,例如,如果你想要一個編寫除錯行的計時器“hello!” 每 5 秒鐘:

.cpp

void MyObject::startHelloWave()
{
    QTimer::singleShot(5 * 1000, this, SLOT(helloWave()));
}

void MyObject::helloWave()
{
    qDebug() << "hello !";
    QTimer::singleShot(5 * 1000, this, SLOT(helloWave()));
}

.hh

class MyObject : public QObject {
    Q_OBJECT
    ...
    void startHelloWave();

private slots:
    void helloWave();
    ...
};