PySide2基础篇(二)——QLabel运用

PySide2基础篇(二)——QLabel运用

前言:
阅读这篇文章我能学到什么?
  我们知道做窗口应用程序最基础的是掌握控件的运用。QLabel就是PySide2中一个基础的控件,它可以用于可以显示文本、图像、视频。下面让我们开始学习它。

——如果你觉得这是一篇不错的博文,希望你能给一个小小的赞,感谢您的支持。

1 使用QLabel能做什么?

  Qt for Python模块中最基本的有三个模块:

  • Qt Core:提供核心的非GUI模块,列如信号和插槽,项目模型的基类,序列化等。
  • Qt GUI:通过GUI功能扩展QtCore:事件,窗口和屏幕,基于OpenGL和基于栅格的2D绘画以及图像。
  • Widgets 为您的应用程序提供随时可用的小部件,包括UI的图形元素。

  QLabel属于控件,因此它继承于模块Widgets

QtCore.QObject
QtGui.QPaintDevice
QtWidgets.QWidget
QtWidgets.QFrame
QtWidgets.QLabel

  QLabel用于显示文本、图像、视频,不具有交互功能。我们可以设置QLabel控件的外观等属性,比如大小、颜色、位置等。一般来说我们给其显示如下内容:

  • 纯文本
  • 富文本
  • 数值
  • 像素图
  • 动画

2 QLabel显示纯文本

2.1 创建一个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_()

  运行结果:
在这里插入图片描述

2.1 修改QLabel的文本内容

2.1.1 setText

  函数原型:

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格式的字符串作为参数。

2 QLabel显示富文本

  QLabelsetText等函数可以直接将富文本作为参数,并且QLabel控件将会呈现出富文本的渲染效果,字符串参数可以是单个引号形式也可以是python三引号形式。
代码示例:

from PySide2.QtWidgets import QApplication, QLabel

app = QApplication([])
Label = QLabel()
Label.setText("<font size=20 color=red>第一行</font>")              #使用html富文本

Label.show()
app.exec_()

运行结果:
在这里插入图片描述

3 QLabe显示数值

  提供了直接用于显示数值的方法setNum该方法可以显示显示singed int即有符号4字节的整数或浮点数。
  代码示例:

from PySide2.QtWidgets import QApplication, QLabel

app = QApplication([])
Label = QLabel()
Label.setNum(999999999999.9)

Label.show()
app.exec_()

运行结果:
在这里插入图片描述

4 QLabe显示图片

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

运行结果:
在这里插入图片描述

5 QLabe显示动画

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

运行结果:
在这里插入图片描述
  关于QMovie这个类还有很多操作,因为这篇文章主要是介绍QLabel用法所以就不深入下去了。