pyqt5 图片随窗口变化等比例缩放

时间:2025-04-14 07:21:57

把图片的路径改成你自己的

import sys
from  import QMainWindow,QApplication,QWidget,QHBoxLayout,QLabel
from  import QIcon,QPixmap,QImage
from PyQt5 import QtCore
from PIL import Image

class FirstMainWin(QWidget):

    def __init__(self):
        super(QWidget,self).__init__()
        ()

        # 设置窗口的尺寸

        ('显示图像')
        #  = ()
        #
        # ('只存在5秒的消息',5000)

    def initUI(self):
        (800, 300)
        (300, 200)
         = QLabel(self)
        self.pil_image=QImage('D:\pycode20100406\pycode\data\login\任达华.jpg')

        (self.pil_image)


        #()
         = (self)  # 定义定时器,用于控制显示视频的帧率

        (lambda:(self.pil_image))
        (10)

    def fcku(self,fckimage):
        # hbox = QHBoxLayout(self)
        #print(())
        pil_image = self.m_resize((), (), fckimage)
        # fckimage=(fckimage,cv2.COLOR_RGB2BGR)
        #fckimage = QImage(, , QImage.Format_RGB888)
        # print()

        pixmap = (pil_image)
        # print(())
        # pixmap = self.m_resize((), (), pixmap)
        (pil_image.width(),pil_image.height())
        (pixmap)
        #print(())
        # (lbl)
        # (hbox)

    def m_resize(self,w_box, h_box, pil_image):  # 参数是:要适应的窗口宽、高、后的图片

        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)

if __name__ == '__main__':
    app = QApplication()

    (QIcon('C:/Users/TECH013/Desktop/Pic/公司左上角'))
    main = FirstMainWin()
    ()

    (app.exec_())