Qtが別のウィンドウシステムを介さずにフレームバッファに直接描画しているqt埋め込みでは、ウィンドウはどのように機能しますか?一度に複数のプログラムを実行できますか?合成や小さな[x]ボタン、最大化などはできますか?
3 に答える
ウィンドウ管理機能を提供するには、サーバーとして1つのアプリケーションを実行する必要があります。たとえば、実行時にコマンドラインで-qwsオプションを渡すことによって。
その他のアプリケーションはすべてクライアントとして実行されます。詳細については、次のページを参照してください。
Qtのドキュメントから:
Qt for Embedded Linux アプリケーションでは、サーバー アプリケーションが実行されているか、サーバー アプリケーション自体である必要があります。QApplication::GuiServer タイプで QApplication オブジェクトを構築するか、-qws コマンド ライン オプションを使用してアプリケーションを実行することにより、Qt for Embedded Linux アプリケーションをサーバー アプリケーションにすることができます。
したがって、コンストラクターにQApplication::GuiServer
3 番目のパラメーターとして渡して、サーバーを持つことができます。QApplication
QApplication app( argc, argv, QApplication::GuiServer );
または-qws
、アプリケーションに引数を渡してサーバーとして実行します。
./MyApp -qws
他のアプリケーションはクライアントとして実行する必要があります。
それがどのように機能するかのどの部分について質問していますか? 基本的な概要が必要な場合は、フレームバッファーが境界線や装飾などを描画する Linux の X-windows サーバーのようなものだと考えてください。 X-windows サーバー。フレームバッファのさまざまな側面は、ウィンドウサーバーで変更する必要がなく、プログラムでオーバーライドすることもできます。ただし、Qt でのほとんどの UI 作業では、通常のデスクトップ バージョンとまったく同じいくつかのクラス (QDialog など) を使用することになります。それらは、下にある別のレイヤーによって描画されているだけです。