QT 官方文档参考地址:https://doc.qt.io/qt-5/qlabel.html
QLabel用于显示文本或图像。不提供用户交互功能。
1、 enum Qt::AlignmentFlag
此枚举类型用于描述对齐。它包含水平和垂直标志,这些标志可以组合起来产生所需的效果
水平对齐
Qt::AlignLeft
:与左边缘对齐 Qt::AlignRight
:与右边缘对齐 Qt::AlignHCenter
:水平居中 Qt::AlignJustify
:Justifies the text in the available space. 垂直对齐
Qt::AlignTop
: 顶部对齐Qt::AlignBottom
: 底部对齐Qt::AlignVCenter
: 垂直居中Qt::AlignBaseline
:Aligns with the baseline.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
)
此属性保存标签内容的对齐方式
默认情况下,标签的内容是左对齐和垂直居中的
1、QString text
() const
获取标签中的文本
2、void setText
(const QString &)
设置标签中的文本
3、bool wordWrap
() const
获取标签的换行策略
4、void setWordWrap
(bool on)
5、const QFont & font
() const
获取小部件设置的字体
6、void setFont
(const QFont &)
设置小部件设置的字体
7、int width
() const
获取小部件的宽度
8、Qt::Alignment alignment
() const
获取标签内容的对齐方式
9、void setAlignment
(Qt::Alignment)
设置标签内容的对齐方式
1、void clear()
清空标签中的文本内容
1、void clear()
清空标签中的文本内容
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) # 显示当前播放曲目
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)