PyQt5入门讲解——02.QLabel控件

PyQt5系列文章目录

01.安装与配置
02.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)),显示内容相同。
    其中:
    1. x表示相对于左上角(原点),横坐标向右偏移大小
    2. y表示相对于左上角(原点),纵坐标向下偏移大小
    3. a表示控件的长度
    4. 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):
    1. Qt.AlignLeft:水平方向靠左对齐
    2. Qt.AlignRight:水平方向靠右对齐
    3. Qt.AlignCenter:水平方向居中对齐
    4. Qt.AlignJustify:水平方向调整间距两端对齐
    5. Qt.AlignTop:垂直方向靠上对齐
    6. Qt.AlignBottom:垂直方向靠下对齐
    7. 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 的常用方式

  1. 显示内容:主要使用setText()方法,也可在Qt Designer中设置固定的名称;

  2. 超链接配置:使用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. >之后的内容为文本的超链接提示内容:
    在这里插入图片描述

  3. 图片显示:使用setPixmap()方法,需要注意图片的保存位置,并且图片的大小与label的大小


总结

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

  1. 创建QLabel控件
  2. 使用QLabel方法
  3. 使用QLabel信号
  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值