pyqt5让图片自适应QLabel大小上以及移除已显示的图片

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/richenyunqi/article/details/80546952

代码:

import sys
from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QLabel, QApplication)
from PyQt5.QtGui import QPixmap


class Example (QWidget):
    def __init__(self):
        super ().__init__ ()
        self.initUI ()

    def initUI(self):
        hbox = QHBoxLayout (self)
        lbl = QLabel (self)
        pixmap = QPixmap ("E:\programming\python\MineSweeper\mine.jpg")  # 按指定路径找到图片,注意路径必须用双引号包围,不能用单引号
        lbl.setPixmap (pixmap)  # 在label上显示图片
        lbl.setScaledContents (True)  # 让图片自适应label大小
        hbox.addWidget (lbl)
        self.setLayout (hbox)
        self.move (300, 200)
        self.setWindowTitle ('Red Rock')
        self.show ()


if __name__ == '__main__':
    app = QApplication (sys.argv)
    ex = Example ()
    sys.exit (app.exec_ ())

效果显示:


让图片自适应QLabel的主要代码:

lbl.setScaledContents (True)  # 让图片自适应label大小

为了方便对比效果,不妨按一下最大化按钮,效果如下:


可见确实实现了图片自适应label大小的功能。那么如何移除label上得图片呢?很简单,加入一行代码就可以解决:

lbl.setPixmap(QPixmap(""))#移除label上的图片

完整代码:

import sys
from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QLabel, QApplication)
from PyQt5.QtGui import QPixmap


class Example (QWidget):
    def __init__(self):
        super ().__init__ ()
        self.initUI ()

    def initUI(self):
        hbox = QHBoxLayout (self)
        lbl = QLabel (self)
        pixmap = QPixmap ("E:\programming\python\MineSweeper\mine.jpg")  # 按指定路径找到图片
        lbl.setPixmap (pixmap)  # 在label上显示图片
        lbl.setScaledContents (True)  # 让图片自适应label大小
        lbl.setPixmap(QPixmap(""))#移除label上的图片
        hbox.addWidget (lbl)


        self.setLayout (hbox)
        self.move (300, 200)
        self.setWindowTitle ('Red Rock')
        self.show ()


if __name__ == '__main__':
    app = QApplication (sys.argv)
    ex = Example ()
    sys.exit (app.exec_ ())

效果如下:


阅读更多

扫码向博主提问

日沉云起

用最短的代码,写最快的算法
  • 擅长领域:
  • 算法
去开通我的Chat快问
换一批

没有更多推荐了,返回首页