Qt(C++)でSleep()させる方法 | Qt

qt_small Qt(C++)

QEventLoopでsleep()を実現する

Qtは基本的にイベントトリブン型です。
イベントループを発行して指定時間処理させる事で、sleepを実現できます。
この方法のメリットは、QThread::sleep()はsec単位なのに対し、
QEventLoopでは msec 単位で制御が可能な事です。
方法としては、QTimerのsingleshot()と組み合わせて使用します。

#include <QTimer>
#include <QEventLoop>

//.... do something .....
QEventLoop loop;
QTimer::singleshot(10, &loop, SLOT(quit());
loop.exec();
// Process after 10 msec
//.... do something .....

どちらを使うかは状況に応じて使い分けていきましょう。

ちなみに、C++ですのでC++のSleep()ももちろん使えます。

//.... do something .....
Sleep(10)  // Wait for 10 sec
//.... do something .....


タイトルとURLをコピーしました