2016-07-25 8 views
0

メインスレッドに複数のGUIを作成する視覚的なC++プログラムがあります。他のすべてのGUIの横にQWidgetを表示したい。現在、QApplication.exec()を呼び出すと、ウィンドウを閉じるまでメインスレッドがブロックされます。 exec関数がメインスレッドをブロックしたり、execを呼び出さずにQWidgetを使用したりすることを防ぐ方法はありますか?QApplication :: execがメインスレッドをブロックしないようにする

+0

いいえ、それはGUIの仕組みではありません。これはXYの問題のように聞こえる - あなたが達成したいことを説明しよう。 – MrEricSir

+0

QApplication.exec()を別のスレッドで起動することは可能ですか? – Micka

答えて

0

この方法では、逆にメインスレッドをブロックしていないため、イベントループが実行され、UIが応答性を保つことが保証されます。

ウィジェットが表示されている間、Qtのイベントループがネイティブメッセージキューと完全に相互運用するため、他のすべてのGUIが応答します。

ダイアログウィジェットが閉じられたときに何か起こりたい場合は、関連するコードをたとえば次のように接続します。ダイアログのaccepted()シグナル。

関連する問題