3

ウィンドウ管理機能を提供するには、 QWSサーバーとして 1 つのアプリケーションを実行する必要がありますが、Qt Embedded for Linux ではグラフィカル インターフェイスを使用して他のアプリを実行することもできます。

フォーカスを得るためにマウス/キーボードの操作を必要とせずに、プログラムでウィンドウ間でフォーカスを切り替えたい。次のドキュメントを検索しましたが、別のウィンドウを「アクティブ」にする方法が見つかりません。

http://qt-project.org/doc/qt-4.8/qwsserver.html
http://qt-project.org/doc/qt-4.8/qapplication.html
http://qt-project.org/doc/qt-4.8/qsessionmanager.html#details
http://qt-project.org/doc/qt-4.8/qwswindow.html

QWSServer にはメソッドがあります。

const QList<QWSWindow *> & QWSServer::clientWindows ()

これは QWSWindows のリストを返しますが、それらのウィンドウの 1 つを現在アクティブなウィンドウにする方法がわかりません。これどうやってするの?ありがとう -

4

2 に答える 2

2

受け入れられた答えは、ある意味で誤りです。解決策は、 clientWindows で必要なウィンドウを見つけてから呼び出しQWSWindow::setActiveWindow()てからQWSWindow::raise().

QWSWindow文書化されていないraise()方法を提供します。参照: qwindowsystem_qws.hの定義QWSWindow。何らかの種類のウィンドウ マネージャーを作成する場合は、このタイプの機能が必要です。

文書化されていないものは、状況によっては不可能を打ち負かすことができます。

Qt 以外のアプリケーションにフォーカスを当てたい場合などは、さらに複雑で困難です。

于 2014-01-14T15:02:47.503 に答える