2

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

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

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

4

2 回答 2

6

您可以使用等待条件:

QWaitCondition wc;
QMutex mutex;
QMutexLocker locker(&mutex);
wc.wait(&mutex, milliseconds);
于 2013-11-14T17:15:24.463 回答
4

如果您坚持睡眠,您可以继承 QThread 以公开此方法:

class SleepThread : public QThread {
public: 
   static inline void msleep(unsigned long msecs) { 
       QThread::msleep(msecs);
   }
};
于 2013-11-14T17:35:53.627 回答