1

我正在使用 PySide 制作视频播放器,它是一个绑定到 Qt 框架的 python。我正在使用 phonon(一个模块)来显示视频,并且我想在视频上方显示文本作为字幕。如何在我的声子小部件上方放置另一个小部件。是opengl的选择吗?

4

1 回答 1

5

如果您只是创建标签并将声子小部件设置为父小部件,则标签应显示在其上方。

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

(我意识到这是 C++ 并且您正在使用 Python,但它应该是相似的)

更新: 以上不适用于硬件加速视频播放。另一种可行的方法是创建一个图形场景并将视频小部件或播放器添加到场景中,并将 aQGraphicsTextItem用于文本。将视口设置为 aQGLWidget将启用硬件加速:

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 回答