python qt,在另一个小部件(phonon)上方显示文本/标签

For*_*ted 1 python qt pyqt widget pyside

我正在使用PySide创建一个视频播放器,它是对Qt框架的python绑定.我正在使用声子(模块)来显示视频,我想在视频上方显示文字作为副标题.如何将另一个小部件放在我的phonon小部件上方.opengl是一个选择吗?

Arn*_*nce 5

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

QLabel *label = new QLabel(phononWidget);
label->setText("Text over video!");
Run Code Online (Sandbox Code Playgroud)

(我意识到这是C++而你正在使用Python但它应该是类似的)

更新: 以上内容不适用于硬件加速视频播放.另一种可行的方法是创建一个图形场景并将视频小部件或播放器添加到场景中并使用a QGraphicsTextItem作为文本.将视口设置为a 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();
Run Code Online (Sandbox Code Playgroud)