PyQt5系列文章目录
文章目录
前言
QLabel控件是pyqt5进行界面设计时的一个基础控件,其用于显示不可编辑的文本或图片,也用于设置超链接、富文本,以及作为其他控件的。
一、创建一个QLabel
-
方式一:通过Qt Designer生成
在Qt Designer中拖入一个QLabel控件,再通过PyUIC转换为.py文件(具体流程可以参考01.安装与配置),生成之后的代码为:
... # 省略部分
self.label = QtWidgets.QLabel(self.centralwidget) # 括号中的内容填写QLabel归属的父控件
self.label.setGeometry(QtCore.QRect(310, 200, 131, 21)) # 设置QLabel的位置与大小
self.label.setObjectName("label") # 设置QLabel名称
self.label.setText(_translate("MainWindow", "TextLabel")) # 设置QLabel的显示内容
可以看出,Qt Designer中创建QLabel控件的基本模式,也是较为模式化的方式,可以在独立使用代码添加控件时参考。
-
方式二:直接通过代码生成
通过方式一可以看出,QLabel可以在python中使用代码生成,一般简略的生成方式为:
label1 = QtWidgets.QLabel(self)
label1.setText("TextLabel")
若使用代码生成控件时,可以简化流程,但是不配置的部分会按照默认参数进行,例如label的位置、字体等。
二、QLabel常用方法
1.继承QtWidgets类常用方法
方法 | 描述 |
---|---|
setGeometry | 设置控件的位置与大小 |
setObjectName | 设置控件的名称 |
setFont | 设置控件的字体 |
其中,
- setGeometry:需要填入4个整数值,使用方法:label.setGeometry(x, y, a, b),也可使用label.setGeometry(QtCore.QRect(x, y, a, b)),显示内容相同。
其中:- x表示相对于左上角(原点),横坐标向右偏移大小
- y表示相对于左上角(原点),纵坐标向下偏移大小
- a表示控件的长度
- b表示控件的高度
- setObjectName:需填入字符串,设置控件的名称,最好
- setFont:设置控件文本显示的字体,需要使用QFont,使用方法:setFont(font)。其中,font为实例化QtGui.QFont()之后的内容,使用代码为:
font = QtGui.QFont()
font.setPointSize(12) # 括号里的数字可以设置成自己想要的字体大小
font.setFamily("SimSun") # 宋体
label.setFont(font)
2.QLabel常用方法
方法 | 描述 |
---|---|
setAlignment() | 按固定值方法对齐文本 |
setIndent() | 设置文本缩进值 |
setPixmap() | 设置QLabel为一个Pixmap图片 |
text() | 获取 QLabel 的文本内容 |
setText() | 设置 QLabel 的问本内容 |
selectedText() | 返回所选择的字符 |
setBuddy() | 设置 QLabel 的助记符及 buddy(伙伴),即使用 QLabel 快捷键,会在快捷键后将焦点设置到其 buddy 上;buddy 可以是任意 widget 控件。使用 setBuddy(QWidget*) 设置,其 QLabel 必须是文本内容,并且使用“&”符号设置了助记符 |
setWordWrap() | 设置是否换行 |
其中:
- setAlignment():存在以下可选值,使用方法示例:label.setAlignment(Qt.AlignCenter):
- Qt.AlignLeft:水平方向靠左对齐
- Qt.AlignRight:水平方向靠右对齐
- Qt.AlignCenter:水平方向居中对齐
- Qt.AlignJustify:水平方向调整间距两端对齐
- Qt.AlignTop:垂直方向靠上对齐
- Qt.AlignBottom:垂直方向靠下对齐
- Qt.AlignVCenter:垂直方向居中对齐
- setIndent():填写值为整数值,设置后显示的值会从label框的最左侧缩进对应长度的字符串的长度;
- setPixmap():填写内容为QtGui.QPixmap()实例化后的内容,其中QPixmap()中需要填入图片的名称,若图片在当前工程下面,则可以不填写地址,否则需要填写物理地址。另外设置的图片分辨率不可以过高,示例如下:
pixmap = QtGui.QPixmap('D://workspace//csdn.jpeg')
label.setPixmap(pixmap)
- text():获取当前控件值,为字符串,不需要填写内容
- setText():填写当前控件值,为字符串
- selectedText():返回选择的字符,使用较少
- setBuddy():可以将两个控件进行关联,通过快捷键将QLable的焦点关联到对应控件上,使用最多的就是QLineEdit()控件,示例如下:
label = QLabel('&Password', self)
ling_edit = QLineEdit(self)
label.setBuddy(ling_edit)
- setWordWrap():填写内容为布尔值,设置后会在字符内容超过label的长度后进行换行
3.QLabel 常用信号
方法 | 描述 |
---|---|
linkActivated | 前提是标签设置为超链接,并且不希望打开这个超链接(即setOpenExternalLinks(False))时,点击此链接会触发事件 |
linkHovered | 前提是标签设置为超链接,当鼠标指针滑过标签中嵌入的超链接时,触发事件 |
代码示例:
self.label.setText("<A href='https://blog.csdn.net/weixin_43115411?spm=1000.2115.3001.5343'>欢迎访问</A>")
self.label.setOpenExternalLinks(True) # 设置为True时可以打开超链接,设置为False时不会打开,但是可以触发linkActivated事件
self.label.linkActivated.connect(self.link_clicked)
self.label.linkHovered.connect(self.move_hover)
def link_clicked(self):
print('hhhhh')
def move_hover(self):
print('lllll')
4.QLabel 的常用方式
-
显示内容:主要使用setText()方法,也可在Qt Designer中设置固定的名称;
-
超链接配置:使用setText()方法,使用的方式为:
setText("<A href='https://blog.csdn.net/weixin_43115411?spm=1000.2115.3001.5343'>欢迎访问</A>")
,其中:
a. =之后的内容为网址内容,即’https://blog.csdn.net/weixin_43115411?spm=1000.2115.3001.5343’
b. >之后的内容为文本的超链接提示内容:
-
图片显示:使用setPixmap()方法,需要注意图片的保存位置,并且图片的大小与label的大小
总结
本文介绍了pyqt5中的QLabel控件的相关内容,目前在QLabel控件的使用中,多以显示、提示目的,也可以用于超链接的配置和图片的显示。
主要包括:
- 创建QLabel控件
- 使用QLabel方法
- 使用QLabel信号