5

我想在蓝框(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())

感谢您阅读我的问题。

4

2 回答 2

21

Qt Designer 并没有展示所有的Qt 小部件,我们经常想通过Qt 来添加自己的小部件,为此至少有两种解决方案,第一种是创建插件并将其加载到Qt Designer 中,另一种更简单. 推广小部件,后者是我将在此答案中展示的内容。

为此,您必须进行一些最低限度的更改,我不知道您在蓝色框中使用的是什么类型的小部件,但您必须将其更改为容器子菜单中的小部件类型,如下所示图片:

在此处输入图像描述

在它们之后您必须右键单击小部件并选择Promote to ...,然后会出现一个对话框,在Promoted class name 部分中您必须放置QVideoWidget,在Header File 部分中您必须放置PyQt5.QtMultimediaWidgets,然后按添加按钮,然后按Promote:

在此处输入图像描述

之后,您将能够QVideoWidget在您的应用程序中使用。

在下面的链接中有一个例子

于 2017-11-13T21:11:27.417 回答
0

这里的答案对我来说更清楚:

QWebKit 在 Qt 5.6 中被移除。所以 QWebView 不再可用。使用 QWebEngineView 作为替代。在 Qt Designer 中,只需在表单中添加一个 QWidget 并将其提升为 QWebEngineView(基类:QWidget,标题:QWebEngineView)。不要忘记将 webenginewidgets 添加到您的项目文件中。

于 2021-12-30T15:03:32.740 回答