前言:
阅读这篇文章我能学到什么?
我们知道做窗口应用程序最基础的是掌握控件的运用。QLabel就是PySide2中一个基础的控件,它可以用于可以显示文本、图像、视频。下面让我们开始学习它。
——如果你觉得这是一篇不错的博文,希望你能给一个小小的赞,感谢您的支持。
Qt for Python模块中最基本的有三个模块:
- Qt Core:提供核心的非GUI模块,列如信号和插槽,项目模型的基类,序列化等。
- Qt GUI:通过GUI功能扩展QtCore:事件,窗口和屏幕,基于OpenGL和基于栅格的2D绘画以及图像。
- Widgets 为您的应用程序提供随时可用的小部件,包括UI的图形元素。
QLabel属于控件,因此它继承于模块Widgets
。
QLabel用于显示文本、图像、视频,不具有交互功能。我们可以设置QLabel控件的外观等属性,比如大小、颜色、位置等。一般来说我们给其显示如下内容:
- 纯文本
- 富文本
- 数值
- 像素图
- 动画
函数原型:
QLabel(text [, parent = None [, f = Qt.WindowFlags()]])
param f
WindowFlags
param parent
QWidget
param text
unicode
我们注意到其有参数text
并且是可省略的。这个参数是设置QLabel
控件创建后显示的初始文本,省略时内容为空。
代码示例:
from PySide2.QtWidgets import QApplication, QLabel
app = QApplication([])
Label = QLabel("初始文本") #创建一个类QLabel的实例对象Label,设置初始显示字符串
Label.show()
app.exec_()
函数原型:
PySide2.QtWidgets.QLabel.setText(arg__1)
Parameters
arg__1 – TextFormat
其只有一个参数用于传递要设置的文本内容。
代码示例:
from PySide2.QtWidgets import QApplication, QLabel
app = QApplication([])
Label = QLabel("初始文本") #创建一个类QLabel的实例对象Label,设置初始显示字符串
Label.setText("修改文本") #调用方法,修改文本内容
Label.show()
app.exec_()
运行结果:
我们可以看到最终显示的是setText
函数设置的文本。
如果要显示其他数据类型如何操作呢?setText
支持字符串的格式化显示。
代码示例:
from PySide2.QtWidgets import QApplication, QLabel
app = QApplication([])
Label = QLabel("初始文本") #创建一个类QLabel的实例对象Label,设置初始显示字符串
Label.setText("%d, %f" % (10, 10.1)) #调用方法,修改文本内容
Label.show()
app.exec_()
运行结果:
也支持python3新特性f-string
格式的字符串作为参数。
QLabel
和setText
等函数可以直接将富文本作为参数,并且QLabel控件将会呈现出富文本的渲染效果,字符串参数可以是单个引号形式也可以是python三引号形式。
代码示例:
from PySide2.QtWidgets import QApplication, QLabel
app = QApplication([])
Label = QLabel()
Label.setText("第一行") #使用html富文本
Label.show()
app.exec_()
提供了直接用于显示数值的方法setNum
该方法可以显示显示singed int
即有符号4字节的整数或浮点数。
代码示例:
from PySide2.QtWidgets import QApplication, QLabel
app = QApplication([])
Label = QLabel()
Label.setNum(999999999999.9)
Label.show()
app.exec_()
QLabel提供了方法setPixmap
使得QLabel能显示像素图像。
函数原型:
PySide2.QtWidgets.QLabel.setPixmap(arg__1)
Parameters
arg__1 – QPixmap
参数为QPixmap
,这是一个关于像素图的类。我们需要先实例化它的对象,并给构造函数传入像素图的路径即可,随后将实例化的对象传递给setPixmap
方法用于显示。
代码示例:
from PySide2.QtWidgets import QApplication, QLabel
from PySide2.QtGui import QPixmap
app = QApplication([])
Label = QLabel()
PixMap = QPixmap("./png/PixMap.jpg") #注意不要把这行放到实例化app对象的上面,会无效
Label.setPixmap(PixMap)
Label.show()
app.exec_()
QLabel提供了方法setMovie
使得QLabel能显示动画。
函数原型:
PySide2.QtWidgets.QLabel.setMovie(movie)
Parameters
movie – QMovie
参数为QMovie
,是关于视频的类。我们需要先实例化它的对象,并给构造函数传入视频的路径即可,随后将实例化的对象传递给setMovie
方法用于播放动画。
代码示例:
from PySide2.QtWidgets import QApplication, QLabel
from PySide2.QtGui import QMovie
app = QApplication([])
Label = QLabel()
Movie = QMovie("./Movie/Gif.gif") #注意不要把这行放到实例化app对象的上面,会无效
Label.setMovie(Movie)
Movie.start() #这句表示播放动画,不能省略。也不能放到show后面,否则无法自适应大小
Label.show()
app.exec_()