QLabel类

QLabel小控件提供了文本或图像显示。 更多信息...

头文件 #include <QLabel>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承 QFrame

属性

公有函数

QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
virtual~QLabel()
Qt::Alignmentalignment() const
QWidget *buddy() const
boolhasScaledContents() const
boolhasSelectedText() const
intindent() const
intmargin() const
QMovie *movie() const
boolopenExternalLinks() const
QPicturepicture() const
QPixmappixmap() const
QTextDocument::ResourceProviderresourceProvider() const
QStringselectedText() const
intselectionStart() const
voidsetAlignment(Qt::Alignment)
voidsetBuddy(QWidget *buddy)
voidsetIndent(int)
voidsetMargin(int)
voidsetOpenExternalLinks(bool open)
(since 6.1) voidsetResourceProvider(const QTextDocument::ResourceProvider &provider)
voidsetScaledContents(bool)
voidsetSelection(int start, int length)
voidsetTextFormat(Qt::TextFormat)
voidsetTextInteractionFlags(Qt::TextInteractionFlags flags)
voidsetWordWrap(bool on)
QStringtext() const
Qt::TextFormattextFormat() const
Qt::TextInteractionFlagstextInteractionFlags() const
boolwordWrap() const

重新实现公共函数

virtual intheightForWidth(int w) const override
virtual QSizeminimumSizeHint() const override
virtual QSizesizeHint() const override

公共槽

voidclear()
voidsetMovie(QMovie *movie)
voidsetNum(int num)
voidsetNum(double num)
voidsetPicture(const QPicture &picture)
voidsetPixmap(const QPixmap &)
voidsetText(const QString &)

信号

voidlinkActivated(const QString &link)
voidlinkHovered(const QString &link)

重新实现受保护函数

virtual voidchangeEvent(QEvent *ev) override
virtual voidcontextMenuEvent(QContextMenuEvent *ev) override
virtual boolevent(QEvent *e) override
virtual voidfocusInEvent(QFocusEvent *ev) override
virtual boolfocusNextPrevChild(bool next) override
virtual voidfocusOutEvent(QFocusEvent *ev) override
virtual voidkeyPressEvent(QKeyEvent *ev) override
virtual voidmouseMoveEvent(QMouseEvent *ev) override
virtual voidmousePressEvent(QMouseEvent *ev) override
virtual voidmouseReleaseEvent(QMouseEvent *ev) override
virtual voidpaintEvent(QPaintEvent *) override

详细说明

QLabel 用于显示文本或图像。不提供用户交互功能。可以通过多种方式配置标签的视觉外观,并且可以用于为其他小部件指定焦点快捷键。

QLabel 可以包含以下内容类型之一

内容设置
纯文本通过 QStringsetText
富文本将包含富文本的 QString 传递给 setText
位图通过 QPixmapsetPixmap
一部电影将一个QMovie传递给setMovie().
一个数字将一个int或一个double传递给setNum(),它会将数字转换为纯文本。
无内容与空文本相同。这是默认值。由clear()设置。

注意:当将QString传递给构造函数或调用setText()时,请确保对输入进行清理,因为QLabel试图判断是显示为纯文本还是富文本,富文本是HTML 4标记的一个子集。你可能需要显式地调用setTextFormat(),例如,当期望文本为纯格式,但无法控制文本源(例如显示从Web加载的数据)时。

使用这些函数中的任何一个更改内容时,都会清除任何先前内容。

默认情况下,标签显示左对齐、垂直居中的文本和图像,其中将要显示的文本中的任何制表符都会自动扩展。然而,QLabel的外观可以通过几种方式进行调整和微调。

可以使用setAlignment()和setIndent()调整QLabel小部件区域内内容的位置。文本内容也可以使用setWordWrap()沿单词边界换行。例如,以下代码设置了一个凹陷的面板,其底部右角为两行文本(两行都与标签的右边对齐)

QLabel *label = new QLabel(this);
label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
label->setText("first line\nsecond line");
label->setAlignment(Qt::AlignBottom | Qt::AlignRight);

QLabel从QFrame继承的属性和函数也可以用于指定任何给定标签使用的窗口部件框架。

QLabel通常用作交互式窗口部件的标签。为此,QLabel提供了一个有用的机制,用于添加助记符(见QKeySequence),这将键盘焦点设置到另一个窗口部件(称为QLabel的“伴侣”)。例如

QLineEdit *phoneEdit = new QLineEdit(this);
QLabel *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);

在这个例子中,当用户按下Alt+P时,键盘焦点会转移到标签的伴侣(QLineEdit)。如果伴侣是一个按钮(从QAbstractButton继承),触发助记符将模拟按钮点击。

另请参阅QLineEditQTextEditQPixmapQMovie

属性文档

alignment : Qt::Alignment

此属性包含标签内容的对齐方式

默认情况下,标签的内容是左对齐、垂直居中的。

访问函数

Qt::Alignmentalignment() const
voidsetAlignment(Qt::Alignment)

另请参阅text

[只读] hasSelectedText : const bool

此属性表示是否有任何文本被选中

hasSelectedText()返回true,如果一些或所有文本被用户选中;否则返回false

默认情况下,此属性是false

注意:在标签上设置的textInteractionFlags需要包括TextSelectableByMouse或TextSelectableByKeyboard。

访问函数

boolhasSelectedText() const

另请参阅selectedText

indent : int

此属性包含标签的文本缩进(以像素为单位)

如果标签显示文本,缩进应用于左侧边缘,如果 alignment() 是 Qt::AlignLeft,应用于右侧边缘,如果 alignment() 是 Qt::AlignRight,应用于顶部边缘,如果 alignment() 是 Qt::AlignTop,应用于底部边缘,如果 alignment() 是 Qt::AlignBottom

如果缩进为负数,或者未设置缩进,标签将按以下方式计算有效缩进:如果 frameWidth() 为 0,则有效缩进为 0。如果 frameWidth() 大于 0,则有效缩进为当前 widget 的 font() 中 "x" 字符宽度的二分之一。

默认情况下,缩进为 -1,意味着将按上述方式计算有效缩进。

访问函数

intindent() const
voidsetIndent(int)

请参阅 alignmentmarginframeWidth() 和 font

margin : int

此属性存储边距的宽度

边距是框架最内层的像素和内容最外层像素之间的距离。

默认边距为 0。

访问函数

intmargin() const
voidsetMargin(int)

请参阅 indent

指定 QLabel 是否应自动使用 QDesktopServices::openUrl() 打开链接,而不是发出 linkActivated() 信号。

注意: 标签上设置的 textInteractionFlags 需要包括 LinksAccessibleByMouse 或 LinksAccessibleByKeyboard。

默认值为 false。

访问函数

boolopenExternalLinks() const
voidsetOpenExternalLinks(bool open)

请参阅 textInteractionFlags

pixmap : QPixmap

此属性存储标签的 pixmap。

设置 pixmap 会清除任何以前的内容。如果有的话,将禁用 buddy 快捷键。

访问函数

QPixmappixmap() const
voidsetPixmap(const QPixmap &)

scaledContents : bool

此属性存储标签是否将其内容缩放以填充所有可用空间。

当启用且标签显示 pixmap 时,它将缩放 pixmap 以填充可用空间。

此属性的默认值为 false。

访问函数

boolhasScaledContents() const
voidsetScaledContents(bool)

[只读]selectedText : const QString

此属性存储选中的文本

如果没有选中文本,则此属性的值为空字符串。

默认情况下,此属性包含空字符串。

注意:在标签上设置的textInteractionFlags需要包括TextSelectableByMouse或TextSelectableByKeyboard。

访问函数

QStringselectedText() const

请参阅 hasSelectedText

text : QString

此属性存储标签的文本

如果没有设置文本,这将返回空字符串。设置文本将清除任何以前的内容。

文本将被解释为纯文本或富文本,具体取决于文本格式设置;请参阅setTextFormat(设置文本格式)。默认设置是Qt::AutoText;即QLabel将尝试自动检测设置的文本格式。有关富文本的定义,请参阅支持的HTML子集

如果已设置伙伴,则从新文本更新伙伴快捷键。

请注意,QLabel非常适合显示小型富文本文档,例如从标签的调色板和字体属性获取特定文档设置(字体、文本颜色、链接颜色)的小型文档。对于大型文档,请使用QTextEdit的只读模式。如果需要,QTextEdit也可以提供滚动条。

注意:如果文本包含富文本,则此函数将启用鼠标跟踪。

访问函数

QStringtext() const
voidsetText(const QString &)

另请参阅:setTextFormat(设置文本格式), setBuddy(设置伙伴)和alignment(对齐)。

textFormat : Qt::TextFormat

此属性包含标签的文本格式

有关可能选项的解释,请参阅Qt::TextFormat枚举。

默认格式是Qt::AutoText

访问函数

Qt::TextFormattextFormat() const
voidsetTextFormat(Qt::TextFormat)

另请参阅:text(文本)。

textInteractionFlags : Qt::TextInteractionFlags

指定标签如何与用户输入交互,如果它显示文本。

如果标志包含Qt::LinksAccessibleByKeyboard,则焦点策略也自动设置为Qt::StrongFocus。如果设置了Qt::TextSelectableByKeyboard,则焦点策略设置为Qt::ClickFocus

默认值为Qt::LinksAccessibleByMouse

访问函数

Qt::TextInteractionFlagstextInteractionFlags() const
voidsetTextInteractionFlags(Qt::TextInteractionFlags flags)

wordWrap : bool

此属性包含标签的自动换行策略

如果此属性为true,则标签文本在必要时在单词分隔处换行;否则,根本不换行。

默认情况下,禁止换行。

访问函数

boolwordWrap() const
voidsetWordWrap(bool on)

另请参阅text

成员函数文档

[显式] QLabel::QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

构建一个空标签。

parent和窗口标志f参数传递给QFrame构造函数。

另请参阅:setAlignment(设置对齐), setFrameStyle(设置框架样式)和setIndent(设置缩进)。

[明确] QLabel::QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

创建一个标签以显示文本 text

parent和窗口标志f参数传递给QFrame构造函数。

另请参阅setTextsetAlignmentsetFrameStyle 以及 setIndent

[虚拟 noexcept] QLabel::~QLabel()

销毁标签。

QWidget *QLabel::buddy() const

返回此标签的伴侣,如果没有设置则返回 nullptr。

另请参阅setBuddy

[覆盖虚拟受保护的] void QLabel::changeEvent(QEvent *ev)

重实现了: QFrame::changeEvent(QEvent *ev).

[槽] void QLabel::clear()

清除任何标签内容。

[覆盖虚拟受保护的] void QLabel::contextMenuEvent(QContextMenuEvent *ev)

重实现了:QWidget::contextMenuEvent(QContextMenuEvent *event).

[覆盖虚拟受保护的] bool QLabel::event(QEvent *e)

重实现了: QFrame::event(QEvent *e).

[覆盖虚拟受保护的] void QLabel::focusInEvent(QFocusEvent *ev)

重实现了: QWidget::focusInEvent(QFocusEvent *event).

[覆盖虚拟受保护的] bool QLabel::focusNextPrevChild(bool next)

重实现了:QWidget::focusNextPrevChild(bool next).

[覆盖虚拟受保护的] void QLabel::focusOutEvent(QFocusEvent *ev)

重实现了:QWidget::focusOutEvent(QFocusEvent *event).

[覆盖虚拟] int QLabel::heightForWidth(int w) const

重实现了:QWidget::heightForWidth(int w) const.

[覆盖虚拟受保护的] void QLabel::keyPressEvent(QKeyEvent *ev)

重实现了:QWidget::keyPressEvent(QKeyEvent *event).

[信号] void QLabel::linkActivated(const QString &link)

当用户点击链接时,会发出此信号。通过锚点引用的 URL 通过 link 传递。

另请参阅 linkHovered()。

[信号] void QLabel::linkHovered(const QString &link)

当用户悬停在链接上时,将发出此信号。通过锚点引用的URL作为link传入。

另请参阅 linkActivated()。

[重写虚函数] QSize QLabel::minimumSizeHint() const

重新实现了属性访问函数: QWidget::minimumSizeHint

[重写虚保护函数] void QLabel::mouseMoveEvent(QMouseEvent *ev)

重写: QWidget::mouseMoveEvent(QMouseEvent *event)。

[重写虚保护函数] void QLabel::mousePressEvent(QMouseEvent *ev)

重写: QWidget::mousePressEvent(QMouseEvent *event)。

[重写虚保护函数] void QLabel::mouseReleaseEvent(QMouseEvent *ev)

重写: QWidget::mouseReleaseEvent(QMouseEvent *event)。

QMovie *QLabel::movie() const

返回标签电影的指针,如果没有设置电影,则返回nullptr。

另请参阅 setMovie()。

[重写虚保护函数] void QLabel::paintEvent(QPaintEvent *)

重写: QFrame::paintEvent(QPaintEvent *)。

[自 6.0 开始] QPicture QLabel::picture() const

返回标签的图片。

此函数在 Qt 6.0 中引入。

[自 6.1 开始] QTextDocument::ResourceProvider QLabel::resourceProvider() const

返回此标签富文本的资源提供者。

此函数在 Qt 6.1 中引入。

另请参阅 setResourceProvider()。

int QLabel::selectionStart() const

selectionStart() 返回标签中第一个已选字符的索引,如果没有选择文本,则返回 -1。

注意:在标签上设置的textInteractionFlags需要包括TextSelectableByMouse或TextSelectableByKeyboard。

另请参阅selectedText

void QLabel::setBuddy(QWidget *buddy)

设置此标签的伙伴为 buddy

当用户按下此标签指示的快捷键时,键盘焦点将转移到标签的伙伴小部件。

伙伴机制仅适用于包含文本的 QLabels,其中某个字符前面带有 & 符号。此字符设置为快捷键。有关详细信息,请参阅 QKeySequence::mnemonic() 文档(要显示实际的 & 符号,请使用 '&&')。

在对话框中,您可能需要创建两个数据输入小部件和每个小部件的标签,并设置几何布局,以便每个标签都位于其数据输入小部件(即其“伙伴”)的左侧,例如。

QLineEdit *nameEdit  = new QLineEdit(this);
QLabel    *nameLabel = new QLabel("&Name:", this);
nameLabel->setBuddy(nameEdit);
QLineEdit *phoneEdit  = new QLineEdit(this);
QLabel    *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);
// (layout setup not shown)

使用上述代码,当用户按下Alt+N时,焦点会跳转到名称字段,当用户按下Alt+P时,会跳转到电话字段。

要取消设置先前设置的伙伴,请将此函数中的buddy设置为nullptr。

另请参阅buddy(),setText(),QShortcutsetAlignment

[slot] void QLabel::setMovie(QMovie *movie)

将标签内容设置为movie。任何之前的内容都会被清除。标签不会获取电影的所有权。

如果有的话,禁用伙伴快捷键。

另请参阅movie()和setBuddy()。

[slot] void QLabel::setNum(int num)

将标签内容设置为包含整数num文本表示的纯文本。任何之前的内容都会被清除。如果整数的字符串表示与标签的当前内容相同,则不执行任何操作。

如果有的话,禁用伙伴快捷键。

另请参阅setText(),QString::setNum()和setBuddy

[slot] void QLabel::setNum(double num)

这是一个重载函数。

将标签内容设置为包含双精度值num文本表示的纯文本。任何之前的内容都会被清除。如果双精度的字符串表示与标签的当前内容相同,则不执行任何操作。

如果有的话,禁用伙伴快捷键。

另请参阅setText(),QString::setNum()和setBuddy

[slot] void QLabel::setPicture(const QPicture &picture)

将标签内容设置为picture。任何之前的内容都会被清除。

如果有的话,禁用伙伴快捷键。

另请参阅picture()和setBuddy

[since 6.1] void QLabel::setResourceProvider(const QTextDocument::ResourceProvider &provider)

为此标签的富文本设置资源提供者provider

注意:标签不会获取provider的所有权。

此函数在 Qt 6.1 中引入。

另请参阅resourceProvider

void QLabel::setSelection(int start, int length)

从位置start开始选择,长度为length个字符的文本。

注意:在标签上设置的textInteractionFlags需要包括TextSelectableByMouse或TextSelectableByKeyboard。

另请参阅selectedText

[override virtual] QSize QLabel::sizeHint() const

重新实现了:QFrame::sizeHint() const

© 2024 Qt公司有限公司。本文件中包含的文档贡献均属各自所有者的版权。本文件中提供的文档是根据免费软件基金会发布的GNU自由文档许可协议版本1.3许可的。《Qt》及其相关标志是芬兰及其他国家和地区Qt公司有限公司的商标。所有其他商标均属各自所有者的财产。