PyQt5系列文章目录

01.安装与配置 02.QLabel控件

文章目录

PyQt5系列文章目录前言一、创建一个QLabel二、QLabel常用方法1.继承QtWidgets类常用方法2.QLabel常用方法3.QLabel 常用信号4.QLabel 的常用方式

总结

前言

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("欢迎访问")

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. =之后的内容为网址内容,即’https://blog.csdn.net/weixin_43115411?spm=1000.2115.3001.5343’ b. >之后的内容为文本的超链接提示内容: 图片显示:使用setPixmap()方法,需要注意图片的保存位置,并且图片的大小与label的大小

总结

本文介绍了pyqt5中的QLabel控件的相关内容,目前在QLabel控件的使用中,多以显示、提示目的,也可以用于超链接的配置和图片的显示。 主要包括:

创建QLabel控件使用QLabel方法使用QLabel信号

查看原文