Lire une vidéo avec des graphiques de superposition personnalisé
-
11-10-2019 - |
Question
Je veux lire une vidéo (avec son) dans une interface graphique simple avec « play » et les boutons « stop », etc. Il y a des classes et des widgets dans le module Phonon de Qt pour le faire, et plusieurs exemples. OK, ce qui semble être simple.
Mais maintenant, je dois dessiner des graphiques personnalisés (qui dépendent de l'heure actuelle dans la vidéo) au-dessus de l'image vidéo en flux continu. Je n'ai rien trouvé à ce sujet dans la documentation Qt. Quelle est la manière canonique de le faire? Est-ce que je viens de créer un widget et personnalisée VideoWidget passer outre son paintEvent? Dans une autre question ici, un gars semblait avoir du mal avec cela.
Les pointeurs serait apprécié.
La solution
Utilisez QGraphicsView et QGraphicsWidgets. Vous pouvez mettre votre Phonon :: VideoWidget l'intérieur d'un QGraphicsProxyWidget et il devient utilisable comme QGraphicsWidget.
Pour les superpositions personnalisées, Hériter QGraphicsWidget et passer outre la fonction de peinture pour dessiner vos widgets personnalisés. Vous pouvez les ajouter à votre scène et ils apparaîtront sur le dessus de votre widget vidéo.
Autres conseils
Votre solution ne peut pas travailler parce que vous ne pouvez pas ajouter un QGLWidget
à QGraphicsProxyWidget
. Regardez s'il vous plaît
http://doc.qt.digia.com/qt/qgraphicsproxywidget.html
Notez que les widgets avec l'ensemble d'attributs widget
Qt::WA_PaintOnScreen
et widgets que envelopper une application externe ou le contrôleur ne peut pas être intégré. Les exemples sontQGLWidget
etQAxWidget
.
S'il vous plaît me corriger si je me trompe.