как добавить 2 видео после обработки их в интерфейс Qt? - PullRequest
0 голосов
/ 25 июня 2019

Я хочу показать 2 видео одновременно на интерфейсе Qt.Я использовал этот код для интерфейса try1.py. (я использовал QT-конструктор и преобразовал .ui-файл в .py)

    from PyQt5 import QtCore, QtGui, QtWidgets
    class Ui_Form(object):
        def setupUi(self, Form):
            Form.setObjectName("Form")
            Form.resize(643, 504)
            self.image_label_2 = QtWidgets.QLabel(Form)
            self.image_label_2.setGeometry(QtCore.QRect(290,10, 251,261))
            self.image_label_2.setStyleSheet("background-color: rgb(0, 85, 255);")
            self.image_label_2.setText("")
            self.image_label_2.setObjectName("image_label_2")
            self.image_label = QtWidgets.QLabel(Form)
            self.image_label.setGeometry(QtCore.QRect(10, 10, 251,261))
            self.image_label.setStyleSheet("background-color: rgb(0,85, 255);")
            self.image_label.setText("")
            self.image_label.setObjectName("image_label")
            self.control_bt = QtWidgets.QPushButton(Form)
            self.control_bt.setGeometry(QtCore.QRect(40, 320, 85, 27))
            self.control_bt.setObjectName("control_bt")
            self.retranslateUi(Form)
            QtCore.QMetaObject.connectSlotsByName(Form)
        def retranslateUi(self, Form):
            _translate = QtCore.QCoreApplication.translate
            Form.setWindowTitle(_translate("Form", "Cam view"))
            self.control_bt.setText(_translate("Form", "Start"))
    if __name__ == "__main__":
        import sys
        app = QtWidgets.QApplication(sys.argv)
        Form = QtWidgets.QWidget()
        ui = Ui_Form()
        ui.setupUi(Form)
        Form.show()
        sys.exit(app.exec_())

Я добавил 1 видео в интерфейс,

   import sys

   from PyQt5.QtWidgets import QApplication
   from PyQt5.QtWidgets import QWidget
   from PyQt5.QtGui import QImage
   from PyQt5.QtGui import QPixmap
   from PyQt5.QtCore import QTimer
   import cv2
   from try1 import *
   class MainWindow(QWidget):
       def __init__(self):
           super().__init__()
           self.ui = Ui_Form()
           self.ui.setupUi(self)
           self.timer = QTimer()
           self.timer.timeout.connect(self.viewCam)
           self.ui.control_bt.clicked.connect(self.controlTimer)
       def viewCam(self):
           ret, image = self.cap.read()
           image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
           image = cv2.resize(image, (0, 0), fx=0.3, fy=0.3)
           height, width, channel = image.shape
           step = channel * width
           qImg = QImage(image.data, width, height, step, QImage.Format_RGB888)
           self.ui.image_label.setPixmap(QPixmap.fromImage(qImg))
       def controlTimer(self):
           if not self.timer.isActive():
               self.cap = cv2.VideoCapture("aaa.mp4")
               self.timer.start(20)
              self.ui.control_bt.setText("Stop")
           else:
               self.timer.stop()
               self.cap.release()
               self.ui.control_bt.setText("Start")
   if __name__ == '__main__':
       app = QApplication(sys.argv)
       mainWindow = MainWindow()
       mainWindow.show()
       sys.exit(app.exec_())

Я не знаю, как добавить второе видео на интерфейс, поэтому, пожалуйста, кто-нибудь может мне помочь.

...