我需要在主线程上运行QThread :: usleep()(出于各种原因) 但是,usleep是静态保护的。
我想在没有包装器的情况下使用QThread的usleep函数(我目前正在使用unistd.h的usleep),以完全接受Qt,但不会为代码增加额外的复杂性。
这可能吗?如果是这样,最简单的(从阅读代码的人的角度来看)最简单的方法是什么?
答案 0 :(得分:1)
最好的方法是扩展QThread并将Xsleep方法公开为public:
class Sleeper : public QThread
{
public:
static void usleep(unsigned long usecs){QThread::usleep(usecs);}
static void msleep(unsigned long msecs){QThread::msleep(msecs);}
static void sleep(unsigned long secs){QThread::sleep(secs);}
};
顺便说一下。 Qt5将QThread :: Xsleep方法的可见性改为public。