PyQt6第四章控件功能之4.2常用控件(4.2.1标签:Label)

在常用控件中包含11个常用控件

4.2.1标签:Label

Label(标签)控件属于QLabel类,可以显示文本(纯文本或者丰富文本)、链接或图片,也可以放置一个GIF动画。QLabel类中的常用方法如表。

QLabel类中的常用信号如表:

linkActivated:当单击标签中嵌入的超链接,希望在新窗口中打开这个超链接时,setOpenExtemalLinks特性必须设置为ture;

linkHovered:当鼠标指针滑过标签中嵌入的超链接时,需要用槽函数与这个信号进行绑定

【例4.1】QLabel标签测试。运行程序如图:

# 导入 PyQt6 中的 QtWidgets 模块,这个模块包含了一系列创建 GUI 应用的基础组件
from PyQt6.QtWidgets import *
# 导入 PyQt6 中的 QtCore 模块,这个模块包含了一些核心的非 GUI 功能,如事件处理、时间和线程等
from PyQt6.QtCore import Qt
# 导入 PyQt6 中的 QtGui 模块,这个模块包含了一些 GUI 相关的功能,如图像处理、颜色管理等
from PyQt6.QtGui import QPixmap, QPalette
import sys  # 导入 Python 的 sys 模块,用于处理与 Python 解释器交互或获取解释器信息的功能


# 定义一个名为 MyWidget 的类,继承自 QWidget,QWidget 是 PyQt6 中所有用户界面对象的基类
class MyWidget(QWidget):
    def __init__(self):
        super().__init__()  # 调用父类 QWidget 的构造函数,初始化 MyWidget 对象
        self.setWindowTitle("QLabel测试")  # 设置窗口的标题为 "QLabel测试"

        # 创建四个 QLabel 对象,并将它们添加到 MyWidget 对象中
        label1 = QLabel(self)
        label2 = QLabel(self)
        label3 = QLabel(self)
        label4 = QLabel(self)

        # 设置 label1 的文本,并允许用户通过鼠标选择文本内容
        label1.setText("初始文本标签")
        label1.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse)

        # 设置 label2 的文本,并设置文本的颜色为红色,字体大小为6,文本居中对齐
        # 设置背景颜色为白色,并允许背景色自动填充
        label2.setText('<font size="6" color="red">红色3号字文本标签</font>')
        label2.setAlignment(Qt.AlignmentFlag.AlignCenter)
        label2.setAutoFillBackground(True)
        palette = QPalette()  # 创建一个调色板对象
        palette.setColor(QPalette.ColorRole.Window, Qt.GlobalColor.white)  # 设置窗口背景色为白色
        label2.setPalette(palette)  # 将调色板应用到 label2 上

        # 设置 label3 的提示文本,并为其设置一张图片
        # 当点击图片时,会触发 clickedFunc 函数
        label3.setToolTip('图片标签...')
        label3.setPixmap(QPixmap("E:\PyCode\Pyqt6\ProjectFile04\images\荷花.jpg"))
        label3.linkActivated.connect(self.clickedFunc)

        # 设置 label4 的文本为一个超链接
        # 设置文本右对齐,并允许打开外部链接
        # 当鼠标滑过超链接时,会触发 hoveredFunc 函数
        label4.setText("<a href='http://www.163.com/'>网易超链接标签</a>")
        label4.setAlignment(Qt.AlignmentFlag.AlignRight)
        label4.setOpenExternalLinks(True)
        label4.linkHovered.connect(self.hoveredFunc)

        # 创建一个垂直布局对象
        vbox = QVBoxLayout()

        # 将四个标签按照垂直顺序添加到布局中
        vbox.addWidget(label1)
        vbox.addWidget(label2)
        vbox.addWidget(label3)
        vbox.addStretch()  # 添加一个可伸缩的空间,用于调整布局中的间距
        vbox.addWidget(label4)

        # 将布局应用到 MyWidget 对象上
        self.setLayout(vbox)

        # 定义 hoveredFunc 函数,当鼠标滑过 label4 时会被调用

    def hoveredFunc(self):
        print("鼠标滑过标签4...")

        # 定义 clickedFunc 函数,当点击 label3 的图片时会被调用

    def clickedFunc(self):
        print("鼠标点击标签3...")

    # 判断是否是直接运行此 Python 脚本


if __name__ == "__main__":
    # 创建一个 QApplication 对象,它是 GUI 应用的主控对象
    app = QApplication(sys.argv)
    # 创建一个 MyWidget 对象
    w = MyWidget()
    # 显示 MyWidget 窗口
    w.show()
    # 进入应用的主事件循环,等待用户操作
    sys.exit(app.exec())

表4.3 QLabel类常用方法

方法

描述

界面设置:alignment

设置方法:setAlignment(Qt.AlignmentFlag.x)

设置文本对齐

水平的(x):

左对齐:AlignLeft

右对齐:AlignRight

水平中心对齐:AlignCenter

端对齐:AlignJustify

垂直的(x):

顶部对齐:AlignTop

底部对齐:AlignBottom

垂直中心对齐:AlignVCenter

界面设置:indent

设置方法:setIndent(n)

设置文本缩进值

n=-1(默认)

界面设置:pixmap

设置方法:setPixmap(QPixmap对象名)

设置方法:setMovie(QMovie对象名)

设置显示一个Pixmap图片

QPixmap对象名= QPixmap(图片文件名),图片文件可以是jpgpngicogif

QMovie对象名= QMovie(gif动画文件名)

界面设置:text

设置方法:setText(字符串)

获取方法:text()

设置标签内容为指定字符串

字符串可以是纯文本或者是HTML格式文本

界面设置:buddy

设置方法:setBuddy()

设置助记符及buddy(伙伴)

即使用QLabel设置快捷键,会在快捷键后将焦点设置到其buddy上,这里用到了QLabel的交互控件功能。此外,buddy可以是任何一个Widget控件。使用setBuddy(QWidget*)设置,其QLabel必须是文本内容,并且使用符号设置了助记符

界面设置:wordWrap

设置方法:setWordWrap(逻辑值)

设置是否延单词边界换行

逻辑值=True为换行,逻辑值=Flase为不换行(默认)

获取方法:selectedText()

获得所选择的字符

设置方法:setOpenExternlLinks(逻辑值)

设置允许访问超链接。

功能:

  1. label1:显示普通文本标签,文本内容可以通过鼠标选择。
  2. label2:控制文本的颜色和背景颜色,文本居中显示。
  3. label3:显示图片,并关联了点击事件的槽函数。
  4. label4:显示为超链接标签,鼠标滑过时执行关联槽函数,并且允许打开外部链接。

布局和控件:

  • 布局:使用QVBoxLayout(垂直布局),将四个QLabel控件按照垂直方向排列。
  • 控件
    • QLabel:用于显示文本或图片。
    • QPixmap:用于加载图片,并设置给QLabel

关键语句:

设置label1的文本选择功能
  • label1.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse)

这行代码允许用户通过鼠标选择label1中的文本。

设置label2的文本颜色、背景颜色和对齐方式

label2.setText('<font size="6" color="red">红色3号字文本标签</font>')  
label2.setAlignment(Qt.AlignmentFlag.AlignCenter)  
palette = QPalette()  
palette.setColor(QPalette.ColorRole.Window, Qt.GlobalColor.white)  
label2.setPalette(palette)

这些代码设置了label2的文本为红色,字体大小为6,文本居中对齐,并设置了背景颜色为白色。

设置label3的图片和点击事件

label3.setPixmap(QPixmap("images/荷花.jpg"))  
label3.linkActivated.connect(self.clickedFunc)

这里加载了一张名为“荷花.jpg”的图片并设置给label3,同时连接了label3的点击事件到clickedFunc槽函数。

设置label4的超链接和鼠标滑过事件

label4.setText("<a href='http://www.163.com/'>网易超链接标签</a>")  
label4.setOpenExternalLinks(True)  
label4.linkHovered.connect(self.hoveredFunc)

这些代码设置了label4的文本为超链接,允许打开外部链接,并连接了鼠标滑过事件到hoveredFunc槽函数。

布局设置

vbox = QVBoxLayout()  
# ...  
vbox.addWidget(label4)  
self.setLayout(vbox)

使用QVBoxLayout创建垂直布局,并将四个QLabel添加到布局中,最后将这个布局设置为窗口的布局。

槽函数定义

def hoveredFunc(self):  
    print("鼠标滑过标签4...")  

def clickedFunc(self):  
    print("鼠标点击标签3...")
  1. 这两个函数定义了当鼠标滑过label4和点击label3时分别执行的操作。

整体而言,这段代码通过PyQt6构建了一个具有多个标签控件的简单界面,展示了文本样式、图片加载、链接跳转、信号槽机制等PyQt6的基本用法。

以上解析部分参考文心一言,有不对的地方请指出哦~互相交流学习,共同进步~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值