QLable 类使用教程

文章目录

  • 1、简介
  • 2 、公共类型
  • 3、属性
  • 4、functions
    • 4.1、访问属性相关 function
    • 4.2、公共槽
    • 4.3、Signal
    • 4.4、其他方法
  • QLabel 内容长度超过控件本身长度时处理
    • 1、QLabel 内容长度超过控件本身长度时超出的部分用省略号
    • 2、QLabel 内容长度超过控件本身长度时使用定时器滑动显示文本

QT 官方文档参考地址:https://doc.qt.io/qt-5/qlabel.html

1、简介

QLabel用于显示文本或图像。不提供用户交互功能。

2 、公共类型

1、 enum Qt::AlignmentFlag
此枚举类型用于描述对齐。它包含水平和垂直标志,这些标志可以组合起来产生所需的效果

  • 水平对齐

    • Qt::AlignLeft与左边缘对齐
    • Qt::AlignRight与右边缘对齐
    • Qt::AlignHCenter水平居中
    • Qt::AlignJustifyJustifies the text in the available space.
  • 垂直对齐

    • Qt::AlignTop 顶部对齐
    • Qt::AlignBottom 底部对齐
    • Qt::AlignVCenter 垂直居中
    • Qt::AlignBaselineAligns with the baseline.

3、属性

1、text(类型:QString

这个属性保存标签的文本
如果没有设置文本,这将返回一个空字符串。设置文本将清除以前的任何内容。
根据文本格式设置,文本将被解释为纯文本或富文本;看到setTextFormat()。
默认设置为Qt::AutoText;即QLabel将尝试自动检测文本集的格式。
有关富文本的定义,请参阅支持的HTML子集。
注意,QLabel非常适合显示小的富文本文档,
比如从标签的调色板和字体属性中获取文档特定设置(字体、文本颜色、链接颜色)的小文档。
对于大型文档,使用只读模式的QTextEdit。QTextEdit还可以在必要时提供滚动条。

2、wordWrap(类型:bool

此属性保存标签的换行策略
如果此属性为true,则在必要的换行处换行标签文本;否则,它不会换行。
缺省情况下,禁用自动换行。

3、font(类型:QFont

此属性保存当前为小部件设置的字体

4、width(类型:const int

此属性保存小部件的宽度

5、alignment(类型:Qt::Alignment

此属性保存标签内容的对齐方式
默认情况下,标签的内容是左对齐和垂直居中的

4、functions

4.1、访问属性相关 function

1、QString text() const

获取标签中的文本

2、void setText(const QString &)

设置标签中的文本

3、bool wordWrap() const

获取标签的换行策略

4、void setWordWrap(bool on)

设置标签的换行策略
QLable 类使用教程_第1张图片

5、const QFont & font() const

获取小部件设置的字体

6、void setFont(const QFont &)

设置小部件设置的字体

7、int width() const

获取小部件的宽度

8、Qt::Alignment alignment() const

获取标签内容的对齐方式

9、void setAlignment(Qt::Alignment)

设置标签内容的对齐方式

4.2、公共槽

1、void clear()

清空标签中的文本内容

4.3、Signal

4.4、其他方法

1、void clear()

清空标签中的文本内容

QLabel 内容长度超过控件本身长度时处理

1、QLabel 内容长度超过控件本身长度时超出的部分用省略号

QString QFontMetrics::elidedText(const QString &text, Qt::TextElideMode mode, int width, int flags = 0) const

如果字符串文本的宽度大于width,则返回字符串的省略版本(即包含"…"的字符串)。否则,返回原始字符串。

from PyQt5.QtCore import Qt


label = QLabel("账号: ", parent: QWidget) # 实例化一个 label 对象
nameStr = "这是一个很长的文本--------"

"""QFontMetrics 类计算给定字体的字符或字符串的大小。"""
fm = QFontMetrics(label.font())  # 实例化一个 QFontMetrics 对象
if (fm.width(nameStr) > label.width()):
	nameStr = fm.elidedText(nameStr, Qt.ElideRight, label.width())
ui.musicDisplay.setText(nameStr) # 显示当前播放曲目

2、QLabel 内容长度超过控件本身长度时使用定时器滑动显示文本

from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import *


self.label = QLabel("账号: ", parent: QWidget) # 实例化一个 label 对象
nameStr = "这是一个很长的文本--------"
self.label.setText(nameStr )

timer = QTimer() # 实例化一个定时器对象来滚动当前播放的歌曲名
timer.start(100)  # 设置滚动速度,单位为毫秒
timer.timeout.connect(MusicNameRollDisplay) # 为超时信号绑定槽函数

def MusicNameRollDisplay(self):
    current_text = self.label.text()
    scroll_text = current_text[1:] + current_text[0]
    self.label.setText(scroll_text)

你可能感兴趣的:(PyQt5,python,pyqt,1024程序员节)