pitón qt, texto de la pantalla / etiqueta encima de otro widget (fonones)
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?
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();