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?

È stato utile?

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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top