Pregunta

Estoy haciendo un reproductor de video usando PySide que es un aprieto pitón al marco de Qt. Estoy usando fonones (un módulo) para mostrar el vídeo y quiero mostrar el texto encima del video como un subtítulo. ¿Cómo puedo poner otro widget por encima de mi aparato de fonones. OpenGL es una opción?

¿Fue útil?

Solución

Si usted acaba de crear su etiqueta y configurar el widget de fonones como el padre, la etiqueta debe aparecer sobre ella.

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

(Sé que esto es C ++ y que están trabajando en Python, pero debería ser similar)

Actualización: Lo anterior no funcionará para aceleración de hardware de reproducción de vídeo. Una alternativa que hace el trabajo es crear una escena de gráficos y añadir el widget de vídeo o un reproductor a la escena y utilizar un QGraphicsTextItem para el texto. Ajuste de la ventana a un QGLWidget permitirá la aceleración de hardware:

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();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top