1

現在、Qtを使用してメディアプレーヤーを開発しています。必要な一般的な機能の1つは、全画面を切り替えることができることです。

レンダリングキャンバスは基本的にQGLWidgetです(私はそれからサブクラス化しています)。このメディアプレーヤーのメインウィンドウであるアプリケーションウィンドウに追加されます。レンダリングキャンバスに加えて、アプリケーションウィンドウには、ツールバー、ステータスバー、その他の小さなウィジェットがあります。私が実装したいフルスクリーンは、他のウィジェットが表示されないようにレンダリングキャンバスがフルスクリーンを占めるようにすることです。その間、キーを押すことでイベントをトリガーできます。

レンダリングキャンバスの親を0にリセットし、showFullScreen()関数を呼び出してみました。そして、アプリケーションウィンドウでhide()を呼び出しました。これにより、キャンバスが予想どおりに画面全体を占めるようになります。ただし、アプリケーションはキー押下イベントを取得していません。その結果、私は正常に戻ることができません。さらに、キャンバスの背景が黒と白の間で点滅しています(デフォルトの背景は白です)。

とにかく、私が試した方法がこれを実装するための最良の方法だとは思いません。通常に戻すと、複雑な親の変更が行われるためです。また、piexl値の表示(ソースはraw)など、フルスクリーンで実行する必要のあるタスクがいくつかあるため、アプリケーション全体の管理が困難になります。

フルスクリーンの切り替えを実装するためのより良い方法を誰かが提案できますか?

4

1 に答える 1

0

どのバージョンを使用していますか?

テストする必要があるソリューションを提案します。フルスクリーンにしたい場合は、コンテンツのコピーを作成してみてください (ビデオがウィジェット内にある場合は、新しい QWidget を開いてコンテンツを新しいウィジェットにコピーします)。理論的には、同じコンテンツを持つ 2 つのウィジェットがあります。ただし、非表示にしてサイズを縮小する必要はありません。それがあなたのために働いたかどうか教えてください。

第二に、これらの投稿を見て、役に立つかもしれません:

最後に、もう一度お読みください

私が何かを誤解した場合、または何か (そして何が) 役に立ったか教えてください。

于 2011-12-06T23:32:32.070 に答える