2009-07-09 7 views
3

私はビデオを再生し、途中でスクロールバーを表示するQtアプリケーションを開発しています。ウィンドウサイズは、高さが720ピクセル、幅が1280ピクセルの制限を超えてはいけません。私は、スレーブプロセスとしてMPlayerを使用し、それをQWidgetのwinId()に渡し、ビデオをレンダリングします。今度は、このビデオウィジェットの上に別のウィジェットを追加して、常にいくつかの結果を表示することができますが、ビデオを含むウィジェットの上にラベルウィジェットを配置することは、ビデオによって何度も繰り返し塗りつぶされます。回避策はありますか?それについての示唆?Qtウィジェットのビデオの上にペイントする

答えて

1

このようにMPlayerを使用する場合、の第2ウィンドウを作成することをお勧めします。

ここからいくつかの方法がありますが、Xorgのいくつかのバージョン/設定ではうまくいかないかもしれない方法は、2番目のウィンドウを最初のものと同じサイズにして他のウィンドウの上に直接置きます(どちらかが移動したときに他のウィンドウを移動するための機構を持つ)、そしてあなたのコントロール以外のウィンドウを透明にする(透明度がXの一部のバージョンに問題があること、このいくつかの例についてはlabs.trolltech.com確認してください)。

VLCがフルスクリーンモードで使用していると考えている代替方法は、2番目のウィンドウをコントロールの小さな小さなものにし、最初のウィンドウの上にオフセットを付けて配置します最初のウィンドウが移動すると、2番目のウィンドウの位置が更新されます。

+0

ありがとうございます。私は私が私の進捗状況と解決策を投稿思い、まだそれを試してみる時間が届きません。 –

0

ビデオを再生するためのPhononフレームワークを調べることをお勧めします。別の実行可能ファイルを呼び出さずに演奏を処理しなければならないため、ペインティングの問題を解決する可能性があります。

+0

私はそれを試してみましたが、そのすべてではうまく機能していません。 VLCがフルスクリーンモードでプログレスバーをどのように表示するのだろうか? –

0

オーバーレイされたpaintEvent()の間にウィジェットにペイントするQPixmapに変換するスロットにQImageを放射するウィジェットでビデオをカプセル化します。

私は、あなたが「メッセージ」以外の自分の動画を提供しなければならないの相互作用の種類を知りませんが、あなたは空想何かをしたい場合は、QGraphicsViewはあなたのためにこれらの効果の多くを提供することができます。

これが役に立ちます。