我正在用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()
必须根据窗口大小调整图像的大小。为此,您必须更改:
收件人:
^{pr2}$相关问题 更多 >
编程相关推荐