1

QtフレームワークへのPythonバインドであるPySideを使用してビデオプレーヤーを作成しています。フォノン(モジュール)を使用してビデオを表示していますが、ビデオの上にテキストを字幕として表示したいと思います。フォノンウィジェットの上に別のウィジェットを配置するにはどうすればよいですか。openglはオプションですか?

4

1 に答える 1

5

ラベルを作成し、フォノンウィジェットを親として設定した場合は、ラベルがその上に表示されます。

QLabel *label = new QLabel(phononWidget);
label->setText("Text over video!");

(これはC ++であり、Pythonで作業していると思いますが、似ているはずです)

更新: 上記は、ハードウェアアクセラレーションによるビデオ再生では機能しません。動作する別の方法は、グラフィックシーンを作成し、ビデオウィジェットまたはプレーヤーをシーンに追加してQGraphicsTextItem、テキストにを使用することです。ビューポートをに設定するQGLWidgetと、ハードウェアアクセラレーションが有効になります。

QGraphicsScene *scene = new QGraphicsScene(this);

Phonon::VideoPlayer *v = new Phonon::VideoPlayer();
v->load(Phonon::MediaSource("video_file"));

QGraphicsProxyWidget *pvideoWidget = scene->addWidget(v);

QGraphicsView *view = new QGraphicsView(scene);
view->setViewport(new QGLWidget); //Enable hardware acceleration!

QGraphicsTextItem *label = new QGraphicsTextItem("Text Over Video!", pvideoWidget);
label->moveBy(100, 100);

v->play();
于 2010-09-11T22:53:44.063 に答える