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();
...
};