pyqt 窗口图片自适应

最近,又用 Pyqt5 写了一个新手指引的小界面,今天测试的同学抛出了一个异常。
pyqt 窗口图片自适应

屏幕分辨率过低的时候,界面展示不全。

刚拿到反馈的时候很疑惑,因为之前是做过窗口最大化处理的,又通读一遍代码,找到了对应的问题。

我在展示图片的时候,没有将图片和窗口做适配,只是最大化了展示窗口,但是展示图片的大小还是原始尺寸,于是又新增了一个图片随窗口变化等比例缩放的函数:

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)

再次测试时,问题解决。