Ich entwickle eine Qt-Anwendung, die die Videos abspielen kann und eine Scroll-Leiste auf dem Weg zeigt. Die Fenstergröße darf die Grenze von 720px Höhe und 1280 Breite nicht überschreiten. Ich benutze MPlayer als Slave-Prozess und gebe ihm die winId() des QWidget und es rendert das Video darin. Jetzt möchte ich ein weiteres Widget oben auf diesem Video-Widget, um die ganze Zeit einige Ergebnisse anzuzeigen, aber das Platzieren eines Label-Widgets über dem Widget, das Video enthält, dient nicht dem Zweck, da es immer wieder vom Video übermalt wird. Irgendeine Problemumgehung? Vorschläge dazu?Malen über Video in einem Qt Widget
Antwort
Bei der Verwendung von MPlayer auf diese Weise, glaube ich, Ihre beste Option wäre, ein zweites Fenster zu erstellen.
Es gibt ein paar Wege, die Sie von hier aus gehen könnten, die raffiniertere Methode, die bei einigen Versionen/Konfigurationen von Xorg nicht funktioniert, ist, dass das zweite Fenster dieselbe Größe wie das erste hat und es direkt über dem anderen platziert (mit einem Mechanismus, um das andere Fenster zu verschieben, wenn eines verschoben wird) und das Fenster mit Ausnahme der Steuerelemente transparent zu machen (Transparenz ist das Problem mit einigen X-Versionen, siehe labs.trolltech.com für einige Beispiele). Die alternative Methode, von der ich glaube, dass sie im Vollbildmodus verwendet wird, besteht darin, dass das zweite Fenster nur eine kleine Sache mit den Steuerelementen ist und es über dem ersten Fenster mit einem Offset und Nein positioniert wird border ... Wenn das erste Fenster verschoben wird, wird die Position des zweiten Fensters aktualisiert.
Ich schlage vor, Sie schauen in das Phonon-Framework für das Abspielen des Videos. Es sollte mit dem Spielen umgehen, ohne eine separate ausführbare Datei aufzurufen, was wahrscheinlich das Malproblem lösen würde.
Ich habe das versucht, aber es funktioniert überhaupt nicht gut. Ich frage mich, wie VLC Fortschrittsbalken im Vollbildmodus zeigt? –
Verkapseln Sie Ihr Video in einem Widget und senden Sie ein QImage in einen Slot, der es in eine QPixmap konvertiert, die Sie während des Überschreibens von paintEvent() auf dem Widget malen.
Ich weiß nicht, welche Art von Interaktion Sie mit Ihren Videos als "eine Nachricht" bieten müssen, aber wenn Sie etwas ausgefallenes wollen, kann QGraphicsView viele dieser Effekte für Sie bereitstellen.
Hoffe, das hilft.
- 1. Widget in einem anderen Widget Qt
- 2. Problem mit dem Malen eines Widget in einem anderen (Eltern)
- 3. Zentrieren eines Widget in einem anderen Widget in Qt
- 4. Wie Widget in einem anderen Widget in QT?
- 5. MFC-Steuerelement in einem Qt Tab Widget
- 6. Qt Ladeindikator Widget
- 7. Malen über JMF Komponente
- 8. Qt: Benutzerdefiniertes Widget in QScrollArea
- 9. qt - widget - positionierung
- 10. Mapping-Widget für Qt
- 11. Qt Widget Overlays
- 12. Qt Widget vorübergehend Vollbild
- 13. Qt Widget Update später, aber wann?
- 14. Qt-Modell für Chat-Widget
- 15. Wie verwendet man OpenGL-Funktionen in einem QT OpenGL Widget?
- 16. Qt: Bild anzeigen auf Widget
- 17. Bestücken Tabelle Widget von Textdatei in Qt
- 18. Maus über Transparenz in Qt
- 19. WebCam-Video mit Qt anzeigen
- 20. Qt: Gleiches Widget in zwei verschiedenen Layouts
- 21. Wie neu z-Reihenfolge in Qt Widget
- 22. Qt hinzufügen Kind Widget in resizeEvent
- 23. Qt: Mithilfe Widget in mehreren Layouts
- 24. Qt: Checkbox & QItemDelegate - nicht malen Kontrollkästchen, wenn die Auswahl
- 25. Verstecken von Qt-Widget und Halten von Widget-Speicherplatz
- 26. Zeichnung in einem matplotlib Widget in QtDesigner
- 27. malen in qcustomplot durch Signal von Arduino
- 28. Qt & Qt Designer - Making-Widget der Eltern füllen, ohne Polsterung
- 29. über Page Turner Widget
- 30. OpenGL zeichnet über Widgets in Qt
Vielen Dank für Ihre Antwort. Ich habe noch keine Zeit, es auszuprobieren, ich würde meinen Fortschritt und die Lösung veröffentlichen. –