現在、Qtを使用してメディアプレーヤーを開発しています。必要な一般的な機能の1つは、全画面を切り替えることができることです。
レンダリングキャンバスは基本的にQGLWidgetです(私はそれからサブクラス化しています)。このメディアプレーヤーのメインウィンドウであるアプリケーションウィンドウに追加されます。レンダリングキャンバスに加えて、アプリケーションウィンドウには、ツールバー、ステータスバー、その他の小さなウィジェットがあります。私が実装したいフルスクリーンは、他のウィジェットが表示されないようにレンダリングキャンバスがフルスクリーンを占めるようにすることです。その間、キーを押すことでイベントをトリガーできます。
レンダリングキャンバスの親を0にリセットし、showFullScreen()関数を呼び出してみました。そして、アプリケーションウィンドウでhide()を呼び出しました。これにより、キャンバスが予想どおりに画面全体を占めるようになります。ただし、アプリケーションはキー押下イベントを取得していません。その結果、私は正常に戻ることができません。さらに、キャンバスの背景が黒と白の間で点滅しています(デフォルトの背景は白です)。
とにかく、私が試した方法がこれを実装するための最良の方法だとは思いません。通常に戻すと、複雑な親の変更が行われるためです。また、piexl値の表示(ソースはraw)など、フルスクリーンで実行する必要のあるタスクがいくつかあるため、アプリケーション全体の管理が困難になります。
フルスクリーンの切り替えを実装するためのより良い方法を誰かが提案できますか?