pyqt 窗口图片自适应
程序员文章站
2024-03-21 18:02:58
...
最近,又用 Pyqt5 写了一个新手指引的小界面,今天测试的同学抛出了一个异常。
屏幕分辨率过低的时候,界面展示不全。
刚拿到反馈的时候很疑惑,因为之前是做过窗口最大化处理的,又通读一遍代码,找到了对应的问题。
我在展示图片的时候,没有将图片和窗口做适配,只是最大化了展示窗口,但是展示图片的大小还是原始尺寸,于是又新增了一个图片随窗口变化等比例缩放的函数:
def m_resize(self,w_box, h_box, pil_image): # 参数是:要适应的窗口宽、高、Image.open后的图片
w, h = pil_image.width(), pil_image.height() # 获取图像的原始大小
f1 = 1.0*w_box/w
f2 = 1.0 * h_box / h
factor = min([f1, f2])
width = int(w * factor)
height = int(h * factor)
#return pil_image.resize(width, height)
return pil_image.scaled(width, height)
再次测试时,问题解决。