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