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

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控件的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

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 效果图片

相关推荐
wt_cs10 分钟前
银行回单ocr api集成解析-图像文字识别-文字识别技术
开发语言·python
_WndProc32 分钟前
【Python】Flask网页
开发语言·python·flask
互联网搬砖老肖34 分钟前
Python 中如何使用 Conda 管理版本和创建 Django 项目
python·django·conda
测试者家园1 小时前
基于DeepSeek和crewAI构建测试用例脚本生成器
人工智能·python·测试用例·智能体·智能化测试·crewai
大模型真好玩1 小时前
准确率飙升!Graph RAG如何利用知识图谱提升RAG答案质量(四)——微软GraphRAG代码实战
人工智能·python·mcp
前端付豪1 小时前
11、打造自己的 CLI 工具:从命令行到桌面效率神器
后端·python
前端付豪1 小时前
12、用类写出更可控、更易扩展的爬虫框架🕷
后端·python
feiyangqingyun1 小时前
Qt音视频开发技巧/推流带旋转角度/rtsprtmp推流/保存文件到MP4/拉流解析旋转角度
qt·音视频·qt旋转角度推流
江太翁1 小时前
Pytorch torch
人工智能·pytorch·python
网安INF1 小时前
深度学习中的逻辑回归:从原理到Python实现
人工智能·python·深度学习·算法·逻辑回归