PySide6-控件教程-002-QLabel标签控件-文本格式、链接

QLabel 标签控件

本文摘录自我的开源教程:PySide6 代码式教程 - QLabel,CSDN 平台仅做镜像,答疑、纠错请至 GitHub 提交 issue。

文本格式

QLabel可以将其文本字符串解析为纯文本、HTML富文本、Markdown文本

  • .setTextFormat(Qt.TextFormat) 设置文本格式,默认为Qt.AutoText
  • .textFormat() -> Qt.TextFormat 获取文本格式

Qt.TextFormat 具体分为四种:

  • Qt.PlaintText 将文本字符串解析为纯文本
  • Qt.RichText 将文本字符串解析为富文本
  • Qt.AutoText 自动识别为纯文本或富文本
  • Qt.MarkdownText 将文本字符串解析为Markdown格式的文本

链接

对于QLabel中的链接,默认行为为发射linkActivated()信号,但也可以指定使用
QDesktopServices::openUrl() 在默认浏览器中打开链接。
注意textInteractionFlags应该设置为LinksAccessibleByMouseLinksAccessibleByKeyboard

  • .setOpenExternalLinks(open: bool)
  • .openExternalLinks() -> bool

示例代码

本节对应示例代码如下,在已经正确安装 PySide6 的前提下可直接在本地运行:

import sys

from PySide6 import QtWidgets
from PySide6.QtCore import Qt

class MyWidget(QtWidgets.QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setWindowTitle("QLabel-文本格式、链接")
        self.resize(800, 600)
        self.label_1 = QtWidgets.QLabel(self)
        self.label_2 = QtWidgets.QLabel(self)
        self.setup_ui()
        self.test_01()
        self.test_02()

    def setup_ui(self) -> None:
        """设置界面"""
        label_1 = self.label_1
        label_1.move(320, 200)
        label_1.setText(
            "<a href='https://github.com/muziing/PySide6-Code-Tutorial'>PySide6 Code Tutorial</a>"
        )

        label_2 = self.label_2
        label_2.move(320, 230)
        label_2.setText("**Markdown**")

    def test_01(self) -> None:
        """测试文本格式功能"""
        print(self.label_1.textFormat())  # 默认为 Qt.AutoText,所以可以识别富文本
        self.label_2.setTextFormat(Qt.MarkdownText)  # 设置为Qt.MarkdownText后即可被正确解析

    def test_02(self) -> None:
        """测试链接功能"""
        # 链接被点击时的默认行为是发射信号
        self.label_1.linkActivated.connect(lambda val: print(val))  # type: ignore

        # 也可以指定为使用默认浏览器打开,而不发射信号
        # self.label_1.setOpenExternalLinks(True)  # 点击链接则使用默认浏览器打开,不再发射信号


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MyWidget()
    window.show()
    sys.exit(app.exec())

关于 PySide6-Code-Tutorial

  • 前身为已有近 500 Stars 的爆火教程 PyQt_practice
  • 每个模块(.py文件)都可运行,展示了各种控件的各种功能属性作用,代码中有注释讲解
  • 使用最新的 Python 与 PySide 版本(目前为3.10与6.3)
  • 已经涵盖数十个常用控件,且仍在快速增加中
    在这里插入图片描述
    原版教程地址:https://github.com/muziing/PySide6-Code-Tutorial
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值