0

主に、作成したスレッドで QApplication を作成しています。次に、ユーザーからのコマンド (cin から) に従って、スレッドで作成した QApplication インスタンスでコールバックを使用したいと考えています。QApllication の作成は「StartQtThread」と呼ばれるワーカースレッドで行われ、コマンドを取得するメイン関数はメイン スレッドです。

私の問題は、メインスレッドからのコマンドがqapplicationで機能しないことです。たとえば、ユーザーが「z」と入力すると、QApplication のマップでズームインできません。私はメインスレッドにいるので何も起こりません。「StartQtThread」スレッドからズームイン機能を使用しようとしましたが、機能します。

メインスレッドから 'moveToThread(qApp->thread())' 関数を使用しようとしましたが、現在のスレッドは変更されていません。

どうすればそれを変更できるか知っている人はいますか?

4

1 に答える 1

1

thread->moveToThread(obj)オブジェクトobjをスレッドthreadに移動します。コードmoveToThread(qApp->thread())はメイン スレッドのオブジェクトを別のスレッドに移動します (これはちょっと奇妙です)。GUI はメイン スレッドでのみ動作します。

于 2013-04-07T08:32:23.637 に答える