main
関数でイベントループを持たないプログラムで使用するために、QTcpServer
とQTcpSocket
の上に構築されたライブラリを作成したいとします(Qtイベントループがブロックされていて、リアルタイム操作が必要)。QApplication :: exec()を呼び出さずにローカルイベントループを作成することはできますか?
私は、このクラス内でローカルイベントループを作成することでこの問題を回避したいと考えていましたが、最初にapp->exec()
を呼び出さなければ機能しません。ローカルイベントループを作成し、アプリケーションレベルのイベントループを持たずにスレッド内で信号/スロット通信を可能にする方法はありますか?
私は既にIs there a way to use Qt without QApplication::exec()?を見てきましたが、解決策はローカルイベントループを追加するがアプリケーションループを削除しないように思われるため、答えは役に立たない。
'QApplication :: exec()'を持つ新しいスレッドを生成し、それを "メインスレッド"として生き続けますか? –
私はそれを試してみましょう。唯一の欠点は、たとえ実際には実際のQtアプリケーションでライブラリを使用することができなくても、おそらくQApplication :: execの2つの呼び出しを持つことができないからです。 –