在PyQ中调整视频大小

2024-04-20 04:53:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用PyQt和OpenCV构建一个视频播放器。使用一个单独的线程,我用OpenCV读取一个视频文件,然后将其发送到DisplayFrame类,该类使用paint事件来显示每个帧。在

我的问题是如何让视频像VLC播放器一样调整大小?如果播放机窗口变宽或变高,在视频周围呈现黑色空白,并调整播放机窗口的大小并保持视频比例不变?在

用于显示帧的类:

class DisplayFrame(QWidget):
    def __init__(self, parent=None):
        super(DisplayFrame, self).__init__(parent)
        self.image = QImage()
        self.setAttribute(Qt.WA_OpaquePaintEvent)

    def paintEvent(self, event):
        painter = QPainter(self)
        painter.drawImage(0, 0, self.image)
        self.image = QImage()

    @pyqtSlot(QImage)
    def set_image(self, image):
        self.image = image
        self.update()

Tags: imageself视频initdef播放器线程opencv