1、本节知识点详解
QLabel 控件基础
QLabel 是 Qt 框架中用于显示文本或图像的控件,常用于界面中的标签显示,可灵活设置文本内容、样式及布局方式。
关键功能与属性
- 文本内容设置:通过 setText() 方法可直接设置标签显示的文本。
- 字体样式调整:利用 QFont 类定义字体的类型、大小、粗细等属性,再通过 setFont() 应用到标签。
- 颜色设置:可通过样式表(setStyleSheet())或调色板(QPalette)设置文本颜色。
- 对齐方式控制:使用 setAlignment() 方法设置文本在标签内的对齐方式(如左对齐、居中、右对齐等)。
- 动态文本更新:支持在程序运行时通过 setText() 方法实时修改标签显示的内容。
应用场景
- 显示静态说明文本(如表单标签、提示信息)。
- 动态展示数据(如计数器、实时状态信息)。
- 结合样式表实现多样化的文本展示效果。
2、代码描述
python
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout
from PyQt5.QtGui import QFont, QPalette, Qt
from PyQt5.QtCore import Qt as QtCoreQt
# 创建应用实例
app = QApplication(sys.argv)
# 创建主窗口
window = QWidget()
window.setWindowTitle("QLabel 控件示例")
window.setGeometry(100, 100, 400, 300)
# 创建垂直布局
layout = QVBoxLayout(window)
# 1. 创建基础标签并设置文本内容
basic_label = QLabel("这是一个基础文本标签")
layout.addWidget(basic_label)
# 2. 设置标签字体(微软雅黑,12号,加粗)
font = QFont("Microsoft YaHei", 12, QFont.Bold)
font_label = QLabel("字体样式设置示例")
font_label.setFont(font)
layout.addWidget(font_label)
# 3. 设置文本颜色(红色)
color_label = QLabel("文本颜色设置")
palette = QPalette()
palette.setColor(QPalette.WindowText, Qt.red) # 设置文本颜色为红色
color_label.setPalette(palette)
layout.addWidget(color_label)
# 4. 设置对齐方式(居中对齐)
align_label = QLabel("居中对齐文本示例")
align_label.setAlignment(QtCoreQt.AlignCenter) # 水平和垂直方向都居中
layout.addWidget(align_label)
# 5. 动态更新标签文本(通过按钮点击事件实现,此处简化为定时器更新)
dynamic_label = QLabel("动态文本将在此更新")
layout.addWidget(dynamic_label)
# 模拟动态更新文本(实际开发中可通过信号槽机制触发)
import time
from PyQt5.QtCore import QTimer
def update_text():
current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
dynamic_label.setText(f"当前时间:{current_time}")
# 创建定时器,每1秒更新一次文本
timer = QTimer()
timer.timeout.connect(update_text)
timer.start(1000) # 1000毫秒 = 1秒
# 显示窗口
window.show()
sys.exit(app.exec_())
代码注释说明:
- 导入必要的模块:包括 Qt 界面组件、字体和颜色相关类、定时器等。
- 基础标签创建:通过 QLabel 初始化标签并设置初始文本。
- 字体设置:使用 QFont 定义字体样式,包括字体类型、大小和粗细。
- 颜色设置:通过 QPalette 调整文本颜色,也可使用样式表(如 color_label.setStyleSheet("color: red;"))。
- 对齐方式:setAlignment() 方法结合 Qt.AlignCenter 实现居中效果。
- 动态更新:利用 QTimer 定时触发 setText() 方法修改标签内容,模拟实时数据展示。