从零开始的PyQt5 - QLabel篇
- 引言
- 一、简述
- 二、例程
- 2.1 显示到QWidget窗口上
- 2.2 重新设置Label大小和对齐方式
- 2.3 添加内容,设置边框
- 2.4 显示富文本
- 三、参考
引言
QLabel主要用于显示文本或图像,不提供用户交互功能。本文主要简述PyQt5中的QLabel以及展示常用例程。
一、简述
QLabel可以包含以下任何内容类型:
内容 | 设置方法 |
---|---|
普通文本 | 调用setText() ,传递QString |
富文本 | 调用setText() ,传递包含富文本的QString |
图片 | 调用setPixmap() ,传递QPixmap |
动画 | 调用setMovie() ,传递QMovie |
数字 | 调用setNum() ,传递int 或double ,和setText 类似 |
空 | 调用clear() ,与空白纯文本相同 |
- QLable会尝试猜测输入的QString是以纯文本还是富文本,需确保输入格式正确,最好显式调用
setTextFormat()
(默认Qt::AutoText
,可手动传递Qt::PlainText
和Qt::RichText
)。- 默认显示
左对齐
、垂直居中
的文本和图像,其中要显示的文本中的任何选项卡都会自动展开。其外观可以通过多种方式进行调整和微调。
二、例程
2.1 显示到QWidget窗口上
-
效果展示
-
源码
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtCore import Qtclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):label = QLabel('Hello, QLabel!', self) # 创建一个标签设置文本,添加到此窗口中 (父窗口设置为此窗口)label.setAlignment(Qt.AlignCenter) # 文本居中对齐self.setGeometry(300, 300, 400, 100) # 设置窗口的布局self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = ExampleApp()sys.exit(app.exec_())
2.2 重新设置Label大小和对齐方式
-
效果展示
-
源码
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtCore import Qtclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):label = QLabel('Hello, QLabel!', self) # 创建一个标签设置文本,添加到此窗口中 (父窗口设置为此窗口)label.setAlignment(Qt.AlignBottom | Qt.AlignRight) # 文本靠右下label.resize(300, 100) # 设置大小self.setGeometry(300, 300, 400, 100) # 设置窗口的布局self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = ExampleApp()sys.exit(app.exec_())
2.3 添加内容,设置边框
-
效果展示
-
源码
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QFrame
from PyQt5.QtCore import Qtclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):label = QLabel(self) # 创建一个标签设置文本,添加到此窗口中 (父窗口设置为此窗口)label.setText("first line\nsecond line") # 设置内容label.setAlignment(Qt.AlignCenter) # 居中label.resize(300, 100) # 设置大小self.setGeometry(300, 300, 400, 100) # 设置窗口的布局label.setStyleSheet("QLabel {" # 设置边框" border: 2px solid red;"" border-radius: 5px;""}")self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = ExampleApp()sys.exit(app.exec_())
2.4 显示富文本
- 效果展示
- 源码
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QFrame
from PyQt5.QtCore import Qtclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):label = QLabel(self) # 创建一个标签设置文本,添加到此窗口中 (父窗口设置为此窗口)label.setText("<b>加粗</b> <i>斜体</i> <u>下划线</u>") # 设置内容label.setAlignment(Qt.AlignCenter) # 居中label.resize(300, 100) # 设置大小self.setGeometry(300, 300, 400, 100) # 设置窗口的布局self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = ExampleApp()sys.exit(app.exec_())
三、参考
【Qt笔记】QLabel控件详解:https://blog.csdn.net/qq_52924376/article/details/141430178
PyQt5深入解析:QLabel的灵活多变:https://blog.csdn.net/babybin/article/details/135775452
PyQt5控件介绍【标签控件】-QLabel:https://zhuanlan.zhihu.com/p/677135910