python qt, la visualizzazione del testo / etichetta sopra un altro widget (fononi)
Domanda
Sto facendo un lettore video utilizzando PySide che è un vicolo cieco pitone al framework Qt. Sto usando fononi (modulo) per visualizzare il video e voglio visualizzare il testo sopra il video come sottotitolo. Come posso mettere un altro widget sopra il mio widget di fononi. È OpenGL un'opzione?
Soluzione
Se basta creare l'etichetta e si imposta il widget di fononi come il genitore, l'etichetta deve comparire su di esso.
QLabel *label = new QLabel(phononWidget);
label->setText("Text over video!");
(mi rendo conto che questo è il C ++ e si sta lavorando in Python, ma dovrebbe essere simile)
Aggiornamento:
Quanto sopra non funziona per accelerazione hardware la riproduzione video. Un'alternativa che fa il lavoro è quello di creare una scena grafica e aggiungere il widget video o lettore alla scena e utilizzare un QGraphicsTextItem
per il testo. Impostazione della finestra ad un QGLWidget
consentirà l'accelerazione 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();