Я хочу показать 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_())
Я не знаю, как добавить второе видео на интерфейс, поэтому, пожалуйста, кто-нибудь может мне помочь.