복붙노트

[PYTHON] qt 디자이너에서 만든 ui 파일에 비디오를 삽입하는 방법은 무엇입니까?

PYTHON

qt 디자이너에서 만든 ui 파일에 비디오를 삽입하는 방법은 무엇입니까?

파란색 상자 (ui 이미지)에 비디오를 삽입하고 싶지만 비디오 파일을 삽입하는 방법을 모르겠습니다.

내 코드가 여기 있습니다. 비디오를 추가하는 방법을 모르겠습니다 ... 비디오 플레이어를 만드는 예를 알고 있습니다 ...

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())

제 질문을 읽어 주셔서 감사합니다.

해결법

  1. ==============================

    1.Qt Designer는 모든 Qt 위젯을 표시하지 않으며 적어도 두 가지 솔루션이 있으므로 Qt를 통해 자체 위젯을 추가하려고합니다. 첫 번째는 플러그인을 만들어 Qt Designer에로드하고 다른 플러그인은 더 간단합니다. . 위젯을 홍보하십시오, 후자는 내가이 답변에서 보여줄 것입니다.

    Qt Designer는 모든 Qt 위젯을 표시하지 않으며 적어도 두 가지 솔루션이 있으므로 Qt를 통해 자체 위젯을 추가하려고합니다. 첫 번째는 플러그인을 만들어 Qt Designer에로드하고 다른 플러그인은 더 간단합니다. . 위젯을 홍보하십시오, 후자는 내가이 답변에서 보여줄 것입니다.

    이 최소한의 수정을해야하는데, 파란색 상자에서 사용하는 위젯의 유형은 모르지만 다음과 같이 컨테이너의 하위 메뉴에있는 위젯 유형으로 변경해야합니다 영상:

    그 다음에는 위젯을 마우스 오른쪽 버튼으로 클릭하고 Promote to ...를 선택해야합니다. 그러면 Promoted 클래스 이름 부분에 대화 상자가 나타납니다. QVideoWidget을 배치해야하며 헤더 파일 부분에는 PyQt5.QtMultimediaWidgets를 배치해야합니다. 추가 버튼을 누른 다음 승격 :

    그 후에는 응용 프로그램 내에서 QVideoWidget을 사용할 수 있습니다.

    다음 링크에는 예제가 있습니다.

  2. from https://stackoverflow.com/questions/47259825/how-to-insert-video-in-ui-file-which-made-at-qt-designer by cc-by-sa and MIT license