如何在Qt4睡觉

时间:2013-11-14 17:12:02

标签: qt qt4

我刚刚发现在 Qt4 中进行睡眠调用并不容易。我在 Qt5 中编写了一些代码,并在QThread::msleep()和其他地方进行了少量main()次调用。我想将这些代码转换为 Qt4 ,但无法找到转换这些 msleep 来电的简单方法。

error: C2248: 'QThread::msleep' : cannot access protected member declared in class 'QThread'

有人建议将QThread类子类化。为什么我需要走那么远?没有简单的方法可以睡一会儿?

2 个答案:

答案 0 :(得分:6)

您可以使用等待条件:

QWaitCondition wc;
QMutex mutex;
QMutexLocker locker(&mutex);
wc.wait(&mutex, milliseconds);

答案 1 :(得分:4)

如果您坚持睡眠,可以将QThread子类化以公开此方法:

class SleepThread : public QThread {
public: 
   static inline void msleep(unsigned long msecs) { 
       QThread::msleep(msecs);
   }
};