前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PyQt5-QLabel控件是什么?方法有哪些?具体如何使用?

PyQt5-QLabel控件是什么?方法有哪些?具体如何使用?

原创
作者头像
虫无涯
发布2023-11-10 17:13:14
3320
发布2023-11-10 17:13:14
举报
文章被收录于专栏:全栈测试技术全栈测试技术

1 QLabel控件作用?

  • QLabel控件用于显示不可编辑的文本或图片,也用于设置超链接、富文本,以及作为其他控件的;
  • QLabel控件是PyQt5是一个非常常用又非常基础的一个控件。

2 QLabel源码

  • 源码路径:
代码语言:python
复制
PyQt5\QtWidgets\QLabel.py
  • 部分源码:
代码语言:python
复制
class QLabel(QFrame):
    """
    QLabel(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())
    QLabel(str, parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())
    """
    def actionEvent(self, *args, **kwargs): # real signature unknown
        pass

    def alignment(self): # real signature unknown; restored from __doc__
        """ alignment(self) -> Qt.Alignment """
        pass

    def buddy(self): # real signature unknown; restored from __doc__
        """ buddy(self) -> QWidget """
        return QWidget

    def changeEvent(self, QEvent): # real signature unknown; restored from __doc__
        """ changeEvent(self, QEvent) """
        pass

    def childEvent(self, *args, **kwargs): # real signature unknown
        pass

    def clear(self): # real signature unknown; restored from __doc__
        """ clear(self) """
        pass

3 常用方法

3.1 常用方法

方法

说明

setAlignment()

按固定值方法对齐文本

setIndent()

设置文本缩进值

setPixmap()

设置QLabel为一个Pixmap图片

text()

获取 QLabel 的文本内容

setText()

设置 QLabel 的问本内容

selectedText()

返回所选择的字符

setBuddy()

设置 QLabel 的助记符及 buddy(伙伴),即使用 QLabel 快捷键。使用 setBuddy(QWidget*) 设置,其 QLabel 必须是文本内容,并且使用“&”符号设置了助记符

setWordWrap()

设置是否换行

3.2 关于setAlignment()

  • 源码内容:
代码语言:python
复制
    def setAlignment(self, Union, Qt_Alignment=None, Qt_AlignmentFlag=None): # real signature unknown; restored from __doc__
        """ setAlignment(self, Union[Qt.Alignment, Qt.AlignmentFlag]) """
        pass
  • 常用方法:

方法

说明

Qt.AlignLeft

水平方向靠左对齐

Qt.AlignRight

水平方向靠右对齐

Qt.AlignCenter

水平方向居中对齐

Qt.AlignJustify

水平方向调整间距两端对齐

Qt.AlignTop

垂直方向靠上对齐

Qt.AlignBottom

垂直方向靠下对齐

Qt.AlignVCenter

垂直方向居中对齐

4 QLabel常用的信号(事件)

  • 当鼠标滑过QLabel控件时触发: linkHovered
  • 当鼠标单击QLabel控件时触发: linkActivated

5 示例说明

5.1 文本标签

代码语言:python
复制
 # 文本标签
lab_1 = QLabel(self)
lab_1.setText("我的应用")
lab_1.setAutoFillBackground(True)  # 自动填充背景
pat = QPalette()
pat.setColor(QPalette.Window, Qt.yellow)
lab_1.setPalette(pat)
lab_1.setAlignment(Qt.AlignCenter)

5.2 文本链接

代码语言:python
复制
# 文本链接标签
lab_2 = QLabel(self)
lab_2.setText("<a href='#'>山水美景</a>")

5.3 图片标签

代码语言:python
复制
# 图片标签
lab_3 = QLabel(self)
lab_3.setAlignment(Qt.AlignCenter)
lab_3.setToolTip("这是一个图片")
lab_3.setPixmap(QPixmap("F:\pyqt_study\images\壁纸13.jpg"))

5.4 超链接标签

代码语言:python
复制
# 超链接标签
lab_4 = QLabel(self)
lab_4.setText("<a href='xxxxx'>景色宜人</a>")
lab_4.setAlignment(Qt.AlignRight)
lab_3.setToolTip("这是链接")

5.5 窗口添加控件

代码语言:python
复制
# 窗口中添加控件
v = QVBoxLayout()
v.addWidget(lab_1)
v.addWidget(lab_2)
v.addWidget(lab_3)
v.addWidget(lab_4)

5.6 绑定信号和槽

代码语言:python
复制
# 信号事件
lab_2.linkHovered.connect(self.link_H)
lab_4.linkActivated.connect(self.link_C)

self.setLayout(v)

5.7 定义事件

代码语言:python
复制
def link_H(self):
    print("当鼠标滑过label_2时,触发事件")

def link_C(self):
    print("当鼠标单击label_4时,触发事件")

6 完整源码

代码语言:python
复制
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/11/10
# 文件名称:test025_ToolTip.py
# 作用:Qlabel控件的使用


import sys
import ctypes
from PyQt5.QtWidgets import QApplication, QMainWindow, QToolTip, QVBoxLayout, QWidget, QLabel
from PyQt5.QtGui import QFont
from PyQt5.QtGui import QIcon
from PyQt5.QtGui import QPalette, QPixmap
from PyQt5.QtCore import Qt


myappid = "wo de app"
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)


class MyQlabel(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        # 设置窗口标题
        self.setWindowTitle("Qlabel应用")

        # 设置窗口图标
        self.setWindowIcon(QIcon('F:\pyqt_study\images\myicon\hongbao.svg'))

        # 文本标签
        lab_1 = QLabel(self)
        lab_1.setText("我的应用")
        lab_1.setAutoFillBackground(True)  # 自动填充背景
        pat = QPalette()
        pat.setColor(QPalette.Window, Qt.yellow)
        lab_1.setPalette(pat)
        lab_1.setAlignment(Qt.AlignCenter)

        # 文本链接标签
        lab_2 = QLabel(self)
        lab_2.setText("<a href='#'>山水美景</a>")

        # 图片标签
        lab_3 = QLabel(self)
        lab_3.setAlignment(Qt.AlignCenter)
        lab_3.setToolTip("这是一个图片")
        lab_3.setPixmap(QPixmap("F:\pyqt_study\images\壁纸13.jpg"))

        # 超链接标签
        lab_4 = QLabel(self)
        lab_4.setText("<a href='xxxxx'>景色宜人</a>")
        lab_4.setAlignment(Qt.AlignRight)
        lab_3.setToolTip("这是链接")

        # 窗口中添加控件
        v = QVBoxLayout()
        v.addWidget(lab_1)
        v.addWidget(lab_2)
        v.addWidget(lab_3)
        v.addWidget(lab_4)

        # 信号事件
        lab_2.linkHovered.connect(self.link_H)
        lab_4.linkActivated.connect(self.link_C)

        self.setLayout(v)

    def link_H(self):
        print("当鼠标滑过label_2时,触发事件")

    def link_C(self):
        print("当鼠标单击label_4时,触发事件")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MyQlabel()
    win.show()
    sys.exit(app.exec_())

7 效果图片

在这里插入图片描述
在这里插入图片描述

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 QLabel控件作用?
  • 2 QLabel源码
  • 3 常用方法
    • 3.1 常用方法
      • 3.2 关于setAlignment()
      • 4 QLabel常用的信号(事件)
      • 5 示例说明
        • 5.1 文本标签
          • 5.2 文本链接
            • 5.3 图片标签
              • 5.4 超链接标签
                • 5.5 窗口添加控件
                  • 5.6 绑定信号和槽
                    • 5.7 定义事件
                    • 6 完整源码
                    • 7 效果图片
                    相关产品与服务
                    内容识别
                    内容识别(Content Recognition,CR)是腾讯云数据万象推出的对图片内容进行识别、理解的服务,集成腾讯云 AI 的多种强大功能,对存储在腾讯云对象存储 COS 的数据提供图片标签、图片修复、二维码识别、语音识别、质量评估等增值服务。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档