1. 程式人生 > >pyqt5讓圖片自適應QLabel大小上以及移除已顯示的圖片

pyqt5讓圖片自適應QLabel大小上以及移除已顯示的圖片

程式碼:

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_ ())

效果如下: