首页 > 其他分享 >06. 标签控件

06. 标签控件

时间:2024-12-17 20:58:05浏览次数:3  
标签:__ 控件 None 06 标签 self 设置

一、标签控件

  QLabel 控件,又称为 标签控件,它主要用于显示用户不能编辑的文本,标识窗体上的对象(例如,给文本框、列表框添加描述信息等)。

  我们可以在终端中使用 pip 安装 pyside6 模块。

pip install pyside6
label = QLabel()

  创建好的标签控件,我们可以调用 show() 方法显示出来,但这样的话,标签控件会独立显示。如果,我们想标签控件显示在指定的窗口中,我们可以为标签控件调用 setParent(parent) 方法指定一个父窗口。如果父窗口显示的话,那么该标签控件也会显示出来。

label.setParent(w)

  我们可以在 Qt Designer 中设计器的属性编辑器中的 text 属性来设置标签控件的显示文本,也可以直接通过 Python 代码调用 QLabel 类的 setText(text) 方法来设置属性文本。

label.setText("标签的显示文本")

  以上的步骤,我们可以简化为一个步骤,即在创建标签控件的同时,指定它的显示文本和父窗口。

label = QLabel("我是一个标签", w)

  PySide6 中还支持标签中文本的对齐方式,主要用到 alignment 属性。在 Qt Designer 设计器的属性编辑器中展开 alignment 属性,可以看到有两个值,分别为:Horizontal Vertical

  其中,Horizontal 用来设置标签文本的水平对齐方式,取值 4 个:

Qt.AlignLeft       # 左对齐
Qt.AlignCenter     # 水平居中对齐
Qt.AlignRight      # 右对齐
Qt.AlignJustify    # 两端对齐

  Vertical 用来设置标签文本的垂直对齐方式,取值有 3 个:

Qt.AlignTop        # 顶部对齐
Qt.AlignVCenter    # 垂直居中对齐
Qt.AlignBottom     # 底部对齐

  如果使用 Python 代码设置 Label 标签文本的对齐方式,需要用到 QLabel 类的 setAlignment(arg__1) 方法。

label.setAlignment(Qt.AlignCenter | Qt.AlignVCenter)

  在标签宽度不足的情况下,系统会默认只显示部分文字。此时,我们可以设置标签文本换行显示。如果使用 Qt Designer 的话,只需要把标签控件的属性编辑器中的 wordWrap 属性的复选框勾选上即可。如果使用 Python 代码设置标签文本的换行显示,需要用到 QLabel 类的 setWordWrap(on) 方法。

label.setWordWrap(True)

  如果,我们获取标签的文本,可以通过使用 QLable 类的 text() 方法来获取文本。

text = label.text()

  我们还可以为标签设置超链接,在使用 QLable 类中的 setText(text) 方法时,使用 HTML 的 <a> 标签设置超链接文本,然后将 Label 标签中的 setOpenExternalLinks(open) 方法设置为 True,以便允许访问超链接。

label.setText("<a href='https://www.baidu.com'>百度</a>")

  我们还可以为标签设置显示图片,需要使用 QLable 类的 setPixmap(arg__1) 方法。该方法需要有一个 QPixmap 对象,表示图标对象。

from PySide6.QtGui import QPixmap
label.setPixmap(QPixmap("1.ico"))

  QLable 类的常用方法如下:

# 实例方法
text() -> str                                   # 获取QLabel的文字
setTextFormat(format:Qt.TextFormat) -> None     # 设置QLabel的文字格式
setParent(parent:QWidget) -> None               # 设置标签控件所在的父容器
setSelection(arg__1:int, arg__2:int) -> None    # 设置选中文字的范围
selectedText() -> str                           # 获取选中的文字
hasSelectedText() -> bool                       # 判断是否选中文字
setIndent(arg__1) -> None                       # 设置缩进
indent() -> int                                 # 获取缩进
pixmap() -> QPixmap                             # 获取QLabel的图片
setToolTip(arg__1:str) -> None                  # 设置标签的提示文字
setWordWrap(on:bool) -> None                    # 设置是否自动换行
setAlignment(aligement:Qt.Alignment) -> None    # 设置标签文字的对齐方式
setOpenExternalLinks(open:bool) -> None         # 设置是否打开外部链接
setFont(font:QFont) -> None                     # 设置标签文字的字体
font() -> QFont                                 # 获取标签文字的字体
setPalette(palette:QPalette) -> None            # 设置调色板
palette() -> QPalette                           # 获取调色板
setGeometry(rect:QRect) -> None                 # 设置标签的大小和位置
geometry() -> QRect                             # 获取标签的大小和位置
minimumSizeHint() -> QSize                      # 获取标签的最小尺寸
setScaledContents(arg__1:bool) -> None          # 设置显示的图片是否充满整个标签控件
setMargin(arg__1:int) -> None                   # 设置标签的边距
setBuddy(arg__1:QWidget) -> None                # 设置标签的伴随控件
buddy() -> QWidget                              # 获取标签的伴随控件

# 槽方法
setText(text:str) -> None                       # 设置显示的文字
setNum(num:Union[int,float]) -> None            # 设置显示的数字
clear() -> None                                 # 清空显示的内容
setPixmap(pixmap:QPixmap) -> None               # 设置显示的图片
setPicture(picture:QPicture) -> None            # 设置显示的图片
setMovie(movie:QMovie) -> None                  # 设置显示的动画
setEnabled(arg__1:bool) -> None                 # 设置标签控件是否可用

  QLable 类的常用信号有两个:linkActivatedlinkHoveredlinkActivated 信号会在当单击标签中嵌入的超链接时发送信号,linkHovered 信号会在鼠标指针滑过标签中嵌入的超链接时发射信号。如果我们希望在新窗口中打开这个超链接时,setOpenExternalLinks(open) 方法必须设置为 True

linkActivated(link)    # 单击标签中嵌入的超链接时发送信号
linkHovered(link)      # 鼠标指针滑过标签中嵌入的超链接时发射信号
import sys

from PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtWidgets import QLabel
from PySide6.QtGui import QPixmap, QFont
from PySide6.QtCore import Qt, QRect

class MyWidget(QWidget):
    def __init__(self):
        # 1.调用父类Qwidget类的__init__()方法
        super().__init__()
        # 2.调用setupUi()方法初始化页面
        self.setup_ui()

    def setup_ui(self):
        # 1.设置窗口对象大小
        self.setFixedSize(600, 400)
        w = self.width()
        h = self.height()
        print(f"w: {w}, h: {h}")

        # 2.创建标签控件
        self.label1 = QLabel(self)
        self.label2 = QLabel(self)

        self.label1.setGeometry(QRect(0, 0, w, h))

        # 3.设置标签控件的图片
        self.label1.setPixmap(QPixmap("assets/images/1.jpg"))

        self.label2.setGeometry(QRect(w//2-150, 150, 300, 30))

        # 4.设置标签控件的字体
        font = QFont("黑体", pointSize=20)
        self.label2.setFont(font)

        # 5.设置要显示的文本
        self.label2.setText("<a href='https://www.baidu.com'>百度</a>")

        # 6.设置鼠标悬停时的提示信息
        self.label2.setToolTip("百度")

        # 7.设置标签文本的对齐方式
        self.label2.setAlignment(Qt.AlignmentFlag.AlignCenter)

        # 8.允许跳转外部网站,此时linkActivated信号无效
        self.label2.setOpenExternalLinks(True)

        # 9.定义信号与槽的连接
        self.label2.linkHovered.connect(self.horver)
        self.label2.linkActivated.connect(self.activated)


    def horver(self, link):
        print(f"欢迎查看【{link}】链接")

    def activated(self, link):
        print(f"你点击了【{link}】链接")

if __name__ == "__main__":
    # 1.创建一个QApplication类的实例
    app = QApplication(sys.argv)
    # 2.创建一个窗口
    window = MyWidget()
    # 3.展示窗口
    window.show()
    # 4.进入程序的主循环并通过exit()函数确保主循环安全结束
    sys.exit(app.exec())

标签:__,控件,None,06,标签,self,设置
From: https://www.cnblogs.com/FlurryHeart/p/18613399

相关文章

  • WPF 集合控件虚拟化操作
    一、虚拟化WPF列表控件所提供的最重要的功能就是UI虚拟化。1、UI虚拟化技术其实就是只为可见区域中能显示的项创建容器对象的一种技术,对提升列表控件的性能有着显卓的效果。假设有一个数万条记录的数据,其可见区域只能展示30条记录仪,此时如果使用虚拟化技术,那么界面只需要创建30个......
  • 安卓开发学习5 - 安卓简单控件+部分androidStudio快捷键+去除默认主题+实战简单计算器
    按钮-Button按钮控件button由textview派生而来,二者区别:button拥有默认的按钮背景,而textview默认无背景button的内部文本默认居中对齐,而textview的内部文本默认靠左对齐button会默认将英文字母转为大写,而textview保持原始的英文大小写与textview相比,button增加了两个新......
  • 打卡信奥刷题(435)用C++信奥B4006[普及组/提高] [GESP202406 四级] 宝箱
    [GESP202406四级]宝箱题目描述小杨发现了nnn个宝箱,其中第iii......
  • EyouCMS中beafter标签涉及哪些数据库字段?
    在EyouCMS中,beafter标签用于获取当前文档的上一篇或下一篇内容,其背后涉及到数据库中的某些字段。这些字段通常存储在 ey_archives 表中,该表记录了所有文章的基本信息。具体涉及的字段包括但不限于以下几项:arcurl:文章的URL地址,用于生成链接。title:文章的标题,用于显示在链......
  • 易优CMS中的arcview标签如何使用?
    在易优CMS中,arcview标签用于获取单条文档数据。这个标签非常实用,可以通过设置不同的属性来控制文档的展示方式。基本的用法如下:{eyou:arcviewaid='文档ID'}<ahref="{$field.arcurl}">{$field.title}</a>{/eyou:arcview}在这个例子中,aid='文档ID'表示文档ID,系统会......
  • 江科大STM32学习:06 TIM输出比较
    1.输出比较简介OC(OutputCompare)输出比较输出比较可以通过比较CNT和CCR寄存器值得关系,来对输出电平进行置1、置0或反转得操作,用于输出一定频率和占空比得PWM波形每个高级定时器和通用定时器都拥有4个输出比较通道高级定时器得前三个通道额外拥有死区生成和互补输出的功能2......
  • html5中的meta标签http-equiv属性有什么作用?
    在HTML5中,<meta>标签的http-equiv属性用于提供与HTTP头部字段等效的名称/值对。这允许开发者在HTML文档中模拟一些HTTP响应头部的效果,尽管这些头部实际上并不是由服务器发送的。然而,需要注意的是,随着Web技术的发展,许多http-equiv指令已经过时或被更好的替代方案所取代,因......
  • html5中的meta标签generator有什么作用?
    在HTML5中,<meta>标签的name="generator"属性通常用于指明用来生成当前HTML文档的工具或软件。这个信息主要用于为开发者或网站管理员提供参考,它并不会影响页面的显示或功能。例如,如果你使用了一个特定的内容管理系统(CMS)或网站构建器来创建你的网站,那么该系统可能会在生成的HTM......
  • html5中的meta标签robots有什么作用?
    在HTML5中,<meta>标签的robots属性(通常被称为robotsmeta标签)主要用于控制搜索引擎机器人(也称为网络爬虫或蜘蛛)如何索引和跟踪网页。这个标签通常放在HTML文档的<head>部分。robotsmeta标签可以包含多个值,这些值以逗号分隔,用于指示搜索引擎如何处理该页面。以下是一些常见的值:i......
  • input标签改变高度的同时如何使光标定位在左上角(不使用textarea)
    在HTML中,<input>标签通常用于创建单行文本输入框。由于它是为单行输入设计的,因此没有直接的方式来改变光标的位置或使其像<textarea>那样支持多行文本输入。不过,如果你希望模拟一个类似<textarea>的效果,但又不希望实际使用<textarea>,你可以考虑以下的方法:使用CSS来模拟:......