2017-11-13 4 views
3

Ich möchte Video in blaues Feld (ui Bild) einfügen, aber ich weiß nicht, wie man Videodatei einfügt.Wie man Video in ui Akte einfügt, die am qt Entwerfer machte? (Using python, pyqt5)

enter image description here

Mein Code ist hier. Ich weiß nicht, wie Video hinzufügen ... Genau weiß Beispiel, die Video-Player machen ...

import sys 

from PyQt5 import QtWidgets 
from PyQt5 import QtGui 
from PyQt5 import uic 
from PyQt5 import QtCore 
from PyQt5.QtCore import QDir, Qt, QUrl, pyqtSlot 

from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer 
from PyQt5.QtMultimediaWidgets import QVideoWidget 

from PyQt5.QtWidgets import (QApplication, QFileDialog, QHBoxLayout, QLabel, 
     QPushButton, QSizePolicy, QSlider, QStyle, QVBoxLayout, QWidget) 

dir_audience='' 
dir_movie = '' 
dir_export = '' 
select_emotion = 'happy' 

class Form(QtWidgets.QDialog): 
    def __init__(self, parent=None): 
     QtWidgets.QDialog.__init__(self, parent) 
     self.ui = uic.loadUi("highlight_export_form.ui", self) 
     self.ui.show() 

     self.ui.load_audience.clicked.connect(self.load_audience_clicked) 
     self.ui.load_movie.clicked.connect(self.load_movie_clicked) 

     self.ui.start_recog.clicked.connect(self.start_recog_clicked) 

     self.ui.radio_happy.toggled.connect(self.on_radio_button_toggled) 
     self.ui.radio_surprised.toggled.connect(self.on_radio_button_toggled) 

    def load_audience_clicked(self, event): 
     dir_audience, _ = QFileDialog.getOpenFileName(self, "Open Audience", QDir.homePath()) 
     self.path_audience.setText(dir_audience) 

    def load_movie_clicked(self, event): 
     dir_movie, _ = QFileDialog.getOpenFileName(self, "Open Movie", QDir.homePath()) 
     self.path_movie.setText(dir_movie) 

    def start_recog_clicked(self, event): 
     self.check_1.setText("start_recognition") 

    def on_radio_button_toggled(self): 
     if self.radio_happy.isChecked(): 
      select_emotion='happy' 
      self.check_3.setText(select_emotion) 

     elif self.radio_surprised.isChecked(): 
      select_emotion='surprised' 
      self.check_3.setText(select_emotion) 

if __name__ == '__main__': 
    app = QtWidgets.QApplication(sys.argv) 
    w = Form() 
    sys.exit(app.exec()) 

Danke meine Frage zum Lesen.

Antwort

2

Qt Designer zeigt nicht alle Qt-Widget, und oft möchten wir unser eigenes Widget über Qt hinzufügen, denn es gibt mindestens 2 Lösungen, die erste ist ein Plugin erstellen und laden Sie es auf Qt Designer, und das andere ist einfacher. Werbung für das Widget, das ist das, was ich in dieser Antwort zeigen werde.

Dafür müssen Sie bestimmte minimale Änderungen vornehmen, ich weiß nicht, welche Art von Widget ist die, die Sie in der blauen Box verwenden, aber Sie müssen es in den Widget-Typ ändern, der im Untermenü der Container ist gezeigt in der folgenden Abbildung:

enter image description here

nach ihnen müssen Sie direkt auf das Widget klicken und Promote to ... wählen, dann erscheint ein Dialog, in dem Teil der Promoted Klassennamen Sie QVideoWidget platzieren muss, und in dem Teil der Header-Datei müssen Sie PyQt5.QtMultimediaWidgets, dann drücken Sie die Schaltfläche Hinzufügen und dann Promote:

enter image description here

Danach werden Sie in der Lage sein QVideoWidget in Ihrer Anwendung zu verwenden.

Im folgenden link gibt es ein Beispiel

+0

Wow ..... Danke so sehr. Deine Antwort ist perfekt !!! –

Verwandte Themen