用于显示文本信息。
常用方法:
setAlignment():设置文本的对齐方式 (align对齐,对准,使结盟,匹配)
setIndent():设置文本缩进
text():获取文本内容
setBuddy():设置伙伴关系 (buddy伙伴)
setText():设置文本内容
selectedText():返回所选择的字符
setWordWrap():设置是否允许换行
QLabel常用的信号(事件) :
1.当鼠标滑过QLabel控件时触发: linkHovered
2.当鼠标单击QLabel控件时触发: linkActivated
代码:
import sys
from PyQt5.QtWidgets import QApplication,QLabel,QWidget,QVBoxLayout #垂直布局
from PyQt5.QtGui import QPalette # 调色版
from PyQt5.QtGui import QPixmap #展示图片
from PyQt5.QtCore import Qt #有一些常量在这里面,eg:blue
class QLabelDdemo(QWidget):
def __init__(self):
super(QLabelDdemo, self).__init__()
self.initUI()
def initUI(self):
label1=QLabel(self)
label2 = QLabel(self)
label3 = QLabel(self)
label4 = QLabel(self)
label1.setText('这是一个文本标签')
label1.setAutoFillBackground(True) #自动填充背景
palette=QPalette()
#设置背景色
palette.setColor(QPalette.Window,Qt.blue)
#对label1设置调色版
label1.setPalette(palette)
#跳转到一个网页或者触发一个点击事件
label2.setText("欢迎使用Python GUI程序")
#文本居中
label3.setAlignment(Qt.AlignCenter)
#提示信息
label3.setToolTip('这是一个图片标签')
label3.setPixmap(QPixmap('../pure_code/icon/first.png'))
#如果设为True,用浏览器打开网页,如果设为False,调用槽函数
label4.setOpenExternalLinks(True)
label4.setText("你好鸭,小仙女")
# 右对齐
label4.setAlignment(Qt.AlignRight)
label4.setToolTip('这是一个超级链接')
vbox=QVBoxLayout()
vbox.addWidget(label1)
vbox.addWidget(label2)
vbox.addWidget(label3)
vbox.addWidget(label4)
# 绑定信号和槽
#滑过事件
label2.linkHovered.connect(self.linkHovered)
#单击事件
label4.linkActivated.connect(self.linkClicked)
self.setLayout(vbox)
self.setWindowTitle('QLabel控件演示')
self.resize(400,300)
return
def linkHovered(self):
print('当鼠标滑过label2标签时,触发事件')
def linkClicked(self):
print('当鼠标单击label4标签时,触发事件')
if __name__=='__main__':
app=QApplication(sys.argv)
main=QLabelDdemo()
main.show()
sys.exit(app.exec_())
报错
palette.setColor(QPalette.window,Qt.blue)
TypeError: arguments did not match any overloaded call:
setColor(self, QPalette.ColorGroup, QPalette.ColorRole, Union[QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'builtin_function_or_method'
setColor(self, QPalette.ColorRole, Union[QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'builtin_function_or_method'
原因:
palette.setColor(QPalette.window,Qt.blue)里的Window开头得大写!
运行结果:
当鼠标从第二层(因为是垂直布局,我就按层说了)那个链接滑过时,就会触发相应的事件(槽函数),输出了相应的文字
当点击第四层的链接时,会触发自己写的槽函数,却不会跳转到相应的超链接界面,要如下额外设置一下,
#如果设为True,用浏览器打开网页,如果设为False,调用槽函数
label4.setOpenExternalLinks(True)
设置了之后,就只能跳转(此跳转是自动打开你的浏览器跳转到相应界面)而不会再触发槽函数!