1

MIPS ベースのプラットフォームで Qt アプリケーションを作成する必要があります。

しかし、多くの制約があります。制約には、必要に応じていくつかのリソース (QGFX プラグイン、GPU メモリなど) を解放して再利用することが含まれていました。しかし、他の多くの要求を処理し、他のことを実行しているため、アプリケーションを強制終了することはできません。

基本的に、GUI を強制終了し、GUI に関連するすべてのリソースを解放する必要があります。必要に応じて後で再起動する

試みられた方法の1つは次のとおりです。

main() -> 新しいスレッドを作成する

新スレでは、

while(<Condition>)
{
  sem_wait(..)
  m_wnd =  new myMainWindow();
   ...
   ..
   app->exec();
}

kill コマンドがあるときはいつでも、イベント ループから抜け出し、他のスレッドからのシグナルを待ちます。他のスレッドが必要な変更を行うと、シグナルを受け取り、新しいウィンドウを作成してイベント ループに入ります。

main() では、他のデバイスなどを制御し、Qt-GUI の開始と停止を通知するスレッドもいくつか作成されます。

上記は機能しているようですが、これが正しい設計であるかどうかはわかりません。それは何か問題を引き起こしますか?

誰もがより良い方法を提案できますか?

4

2 に答える 2

1

Qt-Forums で必要な回答を見つけることができました。

主な意図は、GUI (画面上) に関連するすべてのものを削除することだったので、void setQuitOnLastWindowClosed ( bool quit ) (Details Here)を使用できました。これにより、GUI/メイン ウィンドウが閉じられ、アプリがイベント ループから抜け出せず、後でメイン ウィンドウを再起動できるようになります。

ありがとう

于 2012-08-13T12:09:23.483 に答える