[Python] PyQt5 使用QStackedWidget后, 内部子widget label size问题

正在做的一个类似视频监控的界面,图像窗口需要随主窗口大小变化。

刚开始用正常的QWidget 布局, 装载几个Frame,Frame里加QLabel,监控视频在QLabel里显示,视频窗口是根据Frame尺寸设置分辨率。这时候结果正常,主窗口最大化视频窗口也会跟随变大。

后来用到了QStackedWidget,用于在同一个窗口改变不同的布局。问题来了, 当主窗口最大化后,显示图像的窗口size不变,但图像实际变大了。 这说明Frame尺寸变了, 而 Label尺寸没有变化。

网上查了一圈发现没有哪个属性能让Label跟随Frame尺寸变化,那只能找别的方法了。

QLabel有个属性是可以根据内容大小调整尺寸, 既然视频窗口尺寸是跟Frame一样的,可以让QLabel尺寸跟随图像尺寸变化。在setPixmap后面加了adjustSize(), 问题解决。

self.CAM1_Label.setPixmap(QtGui.QPixmap.fromImage(showImage0))  # 往显示视频的Label里 显示QImage
self.CAM1_Label.adjustSize()    # 使用QStackedWidget后,label大小不随frame变化,所以此处根据内容调整size

 

你可能感兴趣的:(python,pyqt)