10.PyQt5【基本组件】标签-QLabel
一、前言
QLabel对象充当占位符以显示不可编辑的文本或图像,或动画 GIF 电影。它也可以用作其他小部件的助记键。标签上可以显示纯文本、超链接或富文本。
二、学习目标
1.QLabel常用方法
2.QLabel常用信号
3.QLabel组件的应用
三、知识点
1.【QLabel常用方法】
方法名 | 主要功能 |
---|---|
setAlignment() | 按照固定方式对其文本 Qt.AlignLeft:水平方向靠左对齐 Qt.AlignRight:水平方向靠右对齐 Qt.AlignCenter:水平方向居中对齐 Qt.AlignJustify:水平方向调整间距两端对齐 Qt.AlignTop:垂直方向靠上对齐 Qt.AlignBottom:垂直方向靠下对齐 Qt.AlignVCenter:垂直方向居中对齐 |
setIndent() | 设置文本缩进 |
setPixmap() | 设置QLab为一个Pixmap 图片 |
text() | 获取QLabel 显示的文本 |
setText() | 设置Qlabel显示的文本 |
setWordWrap() | 是否允许换行 |
2.【QLabel常用信号】
信号 | 描述 |
---|---|
linkActivated | 当点击标签超链接时,希望在新窗口打开这个超链接,setOpenExternalLinks 特性必须设置为True,即 setOpenExternalLinks(True) |
linkHovered | 当指针划过标签中的超链接时,需要槽函数和这个信号绑定 |
3.【QLabel组件的应用】
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel
class QmyWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent) # 调用父类的构造函数,创建QWidget窗体
self.setupUi()
def setupUi(self):
"""页面初始化"""
# 设置窗体大小及标题
self.resize(500, 400)
self.setWindowTitle("QLabel组件示例")
# 创建布局
self.layout = QVBoxLayout()
# QLabel组件示例
self.label1 = QLabel(self)
self.label1.setText("<a href='www.baidu.com'>第一个标签</a>")
self.label2 = QLabel('第二个标签', self)
# QLabel组件设置
self.label1.setAlignment(Qt.AlignCenter) # label1居中对齐
self.label2.setAlignment(Qt.AlignCenter) # label1居中对齐
# QLabel关联信号
self.label1.linkActivated.connect(self.on_label1_activate) # label1绑定超链接点击信号
self.label1.linkHovered.connect(self.on_label2_hover) # label1绑定超链接滑过信号
# 将组件添加到布局中
self.layout.addWidget(self.label1)
self.layout.addWidget(self.label2)
# 为窗体添加布局
self.setLayout(self.layout)
def on_label1_activate(self):
"""label1槽函数"""
print("label1标签被点击啦!")
def on_label2_hover(self):
"""label2槽函数"""
print("label2标签被滑过啦!")
if __name__ == '__main__':
app = QApplication(sys.argv)
myMain = QmyWidget()
myMain.show()
sys.exit(app.exec_())
-
关键代码:
# QLabel组件示例 self.label1 = QLabel(self) self.label1.setText("<a href='www.baidu.com'>第一个标签</a>") self.label2 = QLabel('第二个标签', self) # QLabel组件设置 self.label1.setAlignment(Qt.AlignCenter) # label1居中对齐 self.label2.setAlignment(Qt.AlignCenter) # label1居中对齐 # QLabel关联信号 self.label1.linkActivated.connect(self.on_label1_activate) # label1绑定超链接点击信号 self.label1.linkHovered.connect(self.on_label2_hover) # label1绑定超链接滑过信号
代码中创建一个
QLabel
,设置标签标题的方法有两种,一种是调用setText
方法来设置,如label1
;另一种是在创建label
时将标题传入构造函数来设置,如label2
。此外,还可以给文字添加css样式,将其作为字符串传入setText
方法中。