Question

Je fais un lecteur vidéo à l'aide PySide qui est une liaison python au framework Qt. J'utilise phonon (un module) pour afficher la vidéo et je veux afficher le texte ci-dessus la vidéo comme un sous-titre. Comment puis-je mettre un autre widget dessus de mon widget phonon. Est-opengl une option?

Était-ce utile?

La solution

Si vous venez de créer votre étiquette et définissez le widget phonon comme parent, l'étiquette doit apparaître au-dessus.

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

(Je sais que c'est C ++ et que vous travaillez en Python, mais il devrait être similaire)

Mise à jour: Ce qui précède ne fonctionnera pas pour l'accélération matérielle de lecture vidéo. Une alternative qui fonctionne est de créer une scène graphique et ajouter le widget vidéo ou d'un lecteur à la scène et d'utiliser un QGraphicsTextItem pour le texte. Réglage de la fenêtre à un QGLWidget permettra l'accélération matérielle:

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();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top