オブジェクトを作成してQThreadを呼び出し、オブジェクト内で提案するようにMoveToThread関数を使用すると、ループがあり、反復の間に数秒間スリープを設定できる必要があります(メインGUIを更新するため)Webを検索すると、このリンクにたどり着きました:
http ://www.qtcentre.org/threads/476-where-s-the-sleep%28%29-func
しかし、これはスレッド内では機能しません。これを行う最良の方法は何ですか?
4702 次
2 に答える
3
見て
void msleep ( unsigned long msecs )
void sleep ( unsigned long secs )
void usleep ( unsigned long usecs )
QThreadのメソッド
これらのメソッドはすべて qt4 で保護されています。したがって、qt4 を使用している場合は、QThread から派生してそれらにアクセスする必要があります。それらがqt3で保護されているかどうかはわかりません。
于 2011-06-07T12:39:40.680 に答える
0
これは、QThread sleep
関数が保護されているという問題を回避する方法です。
// QThread has static sleep functions; but they're protected (duh).
// So we provide wrapper functions:
//
// void MyLib::sleep (unsigned long secs)
// void MyLib::msleep (unsigned long msecs)
// void MyLib::usleep (unsigned long usecs)
#include <QThread>
namespace MyLib
{
class DerivedFromQThread : protected QThread
{
public:
static void sleep (unsigned long secs) { QThread::sleep (secs) ; }
static void msleep (unsigned long msecs) { QThread::msleep (msecs) ; }
static void usleep (unsigned long usecs) { QThread::usleep (usecs) ; }
} ;
void sleep (unsigned long secs) { DerivedFromQThread::sleep (secs) ; }
void msleep (unsigned long msecs) { DerivedFromQThread::msleep (msecs) ; }
void usleep (unsigned long usecs) { DerivedFromQThread::usleep (usecs) ; }
} // namespace MyLib
于 2011-06-07T17:34:01.490 に答える