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

yipeiwu_com6年前Python基础

代码:

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

效果如下:

以上这篇pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

使用Python实现正态分布、正态分布采样

使用Python实现正态分布、正态分布采样

多元正态分布(多元高斯分布) 直接从多元正态分布讲起。多元正态分布公式如下: 这就是多元正态分布的定义,均值好理解,就是高斯分布的概率分布值最大的位置,进行采样时也就是采样的中心点。而...

python存储16bit和32bit图像的实例

笔记:python中存储16bit和32bit图像的方法。 说明:主要是利用scipy库和pillow库,比较其中的不同。 ''' 测试16bit和32bit图像的python存储方...

浅谈python 导入模块和解决文件句柄找不到问题

如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失。因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作为输入执...

给Python入门者的一些编程建议

Python是一种非常富有表现力的语言。它为我们提供了一个庞大的标准库和许多内置模块,帮助我们快速完成工作。然而,许多人可能会迷失在它提供的功能中,不能充分利用标准库,过度重视单行脚本,...

解决Django 在ForeignKey中出现 non-nullable field错误的问题

在django的model中建立了如下的类 class UserType(models.Model): name = models.CharField(max_length=40,...