QLabel 类

QLabel 小部件提供文本或图像显示。 更多...

头: #include <QLabel>
qmake: QT += widgets
继承: QFrame

特性

公共函数

QLabel (const QString & text , QWidget * parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
QLabel (QWidget * parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
virtual ~QLabel ()
Qt::Alignment alignment () const
QWidget * buddy () const
bool hasScaledContents () const
bool hasSelectedText () const
int indent () const
int margin () const
QMovie * movie () const
bool openExternalLinks () const
QPicture picture ( Qt::ReturnByValueConstant ) const
QPixmap pixmap ( Qt::ReturnByValueConstant ) const
QString selectedText () const
int selectionStart () const
void setAlignment ( Qt::Alignment )
void setBuddy (QWidget * buddy )
void setIndent ( int )
void setMargin ( int )
void setOpenExternalLinks (bool open )
void setScaledContents ( bool )
void setSelection (int start , int length )
void setTextFormat ( Qt::TextFormat )
void setTextInteractionFlags (Qt::TextInteractionFlags flags )
void setWordWrap (bool on )
QString text () const
Qt::TextFormat textFormat () const
Qt::TextInteractionFlags textInteractionFlags () const
bool wordWrap () const

重实现公共函数

virtual int heightForWidth (int w ) const override
virtual QSize minimumSizeHint () const override
virtual QSize sizeHint () const override

公共槽

void clear ()
void setMovie (QMovie * movie )
void setNum (double num )
void setNum (int num )
void setPicture (const QPicture & picture )
void setPixmap ( const QPixmap & )
void setText ( const QString & )

信号

void linkActivated (const QString & link )
void linkHovered (const QString & link )

重实现保护函数

virtual void changeEvent (QEvent * ev ) override
virtual void contextMenuEvent (QContextMenuEvent * ev ) override
virtual bool event (QEvent * e ) override
virtual void focusInEvent (QFocusEvent * ev ) override
virtual bool focusNextPrevChild (bool next ) override
virtual void focusOutEvent (QFocusEvent * ev ) override
virtual void keyPressEvent (QKeyEvent * ev ) override
virtual void mouseMoveEvent (QMouseEvent * ev ) override
virtual void mousePressEvent (QMouseEvent * ev ) override
virtual void mouseReleaseEvent (QMouseEvent * ev ) override
virtual void paintEvent ( QPaintEvent * ) override

详细描述

QLabel 用于显示文本或图像。不提供用户交互功能。标签的视觉外观可以按多种方式配置,且它可以用于为另一 Widget 指定聚焦符键。

QLabel 可以包含任何下列内容类型:

内容 设置
纯文本 传递 QString to setText ().
富文本 传递 QString 包含富文本到 setText ().
像素图 传递 QPixmap to setPixmap ().
影片 传递 QMovie to setMovie ().
数字 传递 int 或 double to setNum (),将数字转换为纯文本。
什么都没有 如同空纯文本。这是默认。设置通过 clear ().

警告: 当传递 QString 到构造函数或调用 setText (),确保净化输入,因为 QLabel 会试着猜测它是将文本显示为纯文本还是富文本 (HTML 4 标记子集)。可能想要调用 setTextFormat () 明确,如:若期望按纯文本格式却无法控制文本源 (例如:当显示从 Web 加载的数据时)。

当使用这些函数中的任一改变内容时,任何先前内容被清零。

默认情况下,标签显示 左对齐,垂直居中 文本和图像,要显示文本中的任何 Tab 都会 自动展开 。不管怎样,可以按几种方式调节和微调 QLabel 的外观。

可以微调 QLabel 小部件区域内的内容定位采用 setAlignment () 和 setIndent ()。文本内容也可以沿单词边界自动换行采用 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 还可以用于指定要用于任何给定标签的 Widget 框架。

经常使用 QLabel 作为交互 Widget 标签。为此,使用 QLabel 为添加助记符提供了有用机制 (见 QKeySequence ) 将键盘聚焦设置到另一 Widget (称为 QLabel Buddy 好友)。例如:

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

在此范例中,将键盘聚焦转移给标签好友 ( QLineEdit ) 当用户按下 Alt+P 键时。若好友是按钮 (继承自 QAbstractButton ),触发助记符将模拟按钮点击。

另请参阅 QLineEdit , QTextEdit , QPixmap , QMovie ,和 GUI 设计手册:标签 .

特性文档编制

alignment : Qt::Alignment

此特性保持标签内容的对齐方式

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

访问函数:

Qt::Alignment alignment () const
void setAlignment ( Qt::Alignment )

另请参阅 text .

hasSelectedText : const bool

此特性保持是否有选中任何文本。

hasSelectedText() 返回 true 若用户有选中部分或全部文本;否则返回 false .

默认情况下,此特性为 false .

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

该特性在 Qt 4.7 引入。

访问函数:

bool hasSelectedText () const

另请参阅 selectedText ().

indent : int

此特性保持标签的文本缩进 (以像素为单位)

若标签显示文本,缩进被应用到左边缘,若 alignment () 是 Qt::AlignLeft ,到右边缘若 alignment () 是 Qt::AlignRight ,到上边缘若 alignment () 是 Qt::AlignTop ,和到下边缘若 alignment () 是 Qt::AlignBottom .

若缩进为负数或未设置缩进,标签将计算有效缩进,如下所示:若 frameWidth () 为 0,有效缩进变为 0。若 frameWidth () 大于 0,有效缩进变为小部件 x 字符宽度的一半相对当前 font ().

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

访问函数:

int indent () const
void setIndent ( int )

另请参阅 alignment , margin , frameWidth (),和 font ().

margin : int

此特性保存边距的宽度

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

默认边距为 0。

访问函数:

int margin () const
void setMargin ( int )

另请参阅 indent .

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

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

默认值为 false。

该特性在 Qt 4.2 引入。

访问函数:

bool openExternalLinks () const
void setOpenExternalLinks (bool open )

另请参阅 textInteractionFlags ().

pixmap : QPixmap

此特性保持标签的像素图。

先前,Qt 提供版本的 pixmap() 按指针返回像素图。该版本现被弃用。为与旧代码保持兼容,可以明确区分按指针函数和按值函数:

const QPixmap *pixmapPtr = label->pixmap();
QPixmap pixmapVal = label->pixmap(Qt::ReturnByValue);
					

若禁用弃用版本,使用 QT_DISABLE_DEPRECATED_BEFORE 宏,那么可以省略 Qt::ReturnByValue 如下所示:

QPixmap pixmapVal = label->pixmap();
					

若未设置像素图,弃用 Getter 函数将返回 nullptr .

设置像素图会清零任何之前内容。好友快捷方式 (若有的话) 被禁用。

访问函数:

QPixmap pixmap ( Qt::ReturnByValueConstant ) const
void setPixmap ( const QPixmap & )

scaledContents : bool

此特性保持标签是否比例缩放其内容,以填充所有可用空间。

当启用且标签展示像素图时,它将比例缩放像素图以填充可用空间。

此特性默认为 false。

访问函数:

bool hasScaledContents () const
void setScaledContents ( bool )

selectedText : const QString

此特性保持选中文本

若没有选中文本,此特性的值为空字符串。

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

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

该特性在 Qt 4.7 引入。

访问函数:

QString selectedText () const

另请参阅 hasSelectedText ().

text : QString

此特性保持标签的文本

若没有设置文本,这会返回空字符串。设置文本将清零任何先前内容。

将把文本解释成纯文本 (或富文本),从属文本格式设定;见 setTextFormat ()。默认设置为 Qt::AutoText ;即 QLabel 将试着自动检测文本集格式。见 支持的 HTML 子集 对于富文本的定义。

若有设置好友,从新文本更新好友助记符键。

注意, QLabel 非常适合显示小富文本文档,譬如,从标签调色板和字体特性获取文档具体设定 (字体、文本颜色、链接颜色) 的小文档。对于大文档,使用 QTextEdit 以只读方式代替。 QTextEdit 还能提供滚动条,当有必要时。

注意: 此函数启用鼠标追踪若 text 包含富文本。

访问函数:

QString text () const
void setText ( const QString & )

另请参阅 setTextFormat (), setBuddy (),和 alignment .

textFormat : Qt::TextFormat

此特性保持标签的文本格式

见 Qt::TextFormat 枚举了解可能选项的解释。

默认格式为 Qt::AutoText .

访问函数:

Qt::TextFormat textFormat () const
void setTextFormat ( Qt::TextFormat )

另请参阅 text ().

textInteractionFlags : Qt::TextInteractionFlags

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

若标志包含 Qt::LinksAccessibleByKeyboard 聚焦策略还被自动设为 Qt::StrongFocus 。若 Qt::TextSelectableByKeyboard 有设置那么聚焦策略被设为 Qt::ClickFocus .

默认值为 Qt::LinksAccessibleByMouse .

该特性在 Qt 4.2 引入。

访问函数:

Qt::TextInteractionFlags textInteractionFlags () const
void setTextInteractionFlags (Qt::TextInteractionFlags flags )

wordWrap : bool

此特性保持标签的自动换行策略

若此特性为 true 那么有必要在单词分割处换行标签文本;否则,根本不换行。

默认情况下,自动换行是禁用的。

访问函数:

bool wordWrap () const
void setWordWrap (bool on )

另请参阅 text .

成员函数文档编制

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

构造标签显示文本 text .

The parent 和 Widget 标志 f ,自变量被传递给 QFrame 构造函数。

另请参阅 setText (), setAlignment (), setFrameStyle (),和 setIndent ().

QLabel:: QLabel ( QWidget * parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

构造空标签。

The parent 和 Widget 标志 f ,自变量被传递给 QFrame 构造函数。

另请参阅 setAlignment (), setFrameStyle (),和 setIndent ().

[slot] void QLabel:: clear ()

清零任何标签内容。

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

此信号发射,当用户点击链接时。通过锚点引用的 URL 被传入 link .

该函数在 Qt 4.2 引入。

另请参阅 linkHovered ().

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

此信号发射,当用户悬停在链接之上时。通过锚点引用的 URL 被传入 link .

该函数在 Qt 4.2 引入。

另请参阅 linkActivated ().

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

将标签内容设为 movie 。清零任何先前内容。标签未拥有影片的所有权。

好友快捷方式 (若有的话) 被禁用。

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

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

这是重载函数。

使设置标签内容的纯文本包含正文表示的双精度 num 。清零任何先前内容。什么都不做,若双精度的字符串表示如同标签的当前内容。

好友快捷方式 (若有的话) 被禁用。

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

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

使设置标签内容的纯文本包含正文表示的整数 num 。清零任何先前内容。什么都不做,若整数的字符串表示如同标签的当前内容。

好友快捷方式 (若有的话) 被禁用。

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

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

将标签内容设为 picture 。清零任何先前内容。

好友快捷方式 (若有的话) 被禁用。

另请参阅 picture () 和 setBuddy ().

[虚拟] QLabel:: ~QLabel ()

销毁标签。

QWidget *QLabel:: buddy () const

返回此标签的好友,或 nullptr 若目前未设置好友。

另请参阅 setBuddy ().

[override virtual protected] void QLabel:: changeEvent ( QEvent * ev )

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

[override virtual protected] void QLabel:: contextMenuEvent ( QContextMenuEvent * ev )

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

[override virtual protected] bool QLabel:: event ( QEvent * e )

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

[override virtual protected] void QLabel:: focusInEvent ( QFocusEvent * ev )

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

[override virtual protected] bool QLabel:: focusNextPrevChild ( bool next )

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

[override virtual protected] void QLabel:: focusOutEvent ( QFocusEvent * ev )

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

[override virtual] int QLabel:: heightForWidth ( int w ) const

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

[override virtual protected] void QLabel:: keyPressEvent ( QKeyEvent * ev )

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

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

重实现访问函数为特性: QWidget::minimumSizeHint .

[override virtual protected] void QLabel:: mouseMoveEvent ( QMouseEvent * ev )

重实现: QWidget::mouseMoveEvent (QMouseEvent *event).

[override virtual protected] void QLabel:: mousePressEvent ( QMouseEvent * ev )

重实现: QWidget::mousePressEvent (QMouseEvent *event).

[override virtual protected] void QLabel:: mouseReleaseEvent ( QMouseEvent * ev )

重实现: QWidget::mouseReleaseEvent (QMouseEvent *event).

QMovie *QLabel:: movie () const

返回指向标签影片的指针,或 nullptr 若没有设置影片。

另请参阅 setMovie ().

[override virtual protected] void QLabel:: paintEvent ( QPaintEvent * )

重实现: QFrame::paintEvent (QPaintEvent *).

QPicture QLabel:: picture ( Qt::ReturnByValueConstant ) const

返回标签的图片。

先前,Qt 提供版本的 picture() 按指针返回图像。该版本现弃用。为与旧代码保持兼容,可以明确区分按指针函数和按值函数:

const QPicture *picPtr = label->picture();
QPicture picVal = label->picture(Qt::ReturnByValue);
					

若禁用弃用版本,使用 QT_DISABLE_DEPRECATED_BEFORE 宏,那么可以省略 Qt::ReturnByValue 如下所示:

QPicture picVal = label->picture();
					

该函数在 Qt 5.15 引入。

QPixmap QLabel:: pixmap ( Qt::ReturnByValueConstant ) const

注意: getter 函数对于特性 pixmap .

该函数在 Qt 5.15 引入。

int QLabel:: selectionStart () const

selectionStart() 返回标签第 1 选中字符的索引,或 -1 若未选中文本。

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

该函数在 Qt 4.7 引入。

另请参阅 selectedText ().

void QLabel:: setBuddy ( QWidget * buddy )

将此标签的好友设为 buddy .

当用户按下此标签指示的快捷键时,将转移键盘聚焦到标签的好友 Widget。

好友机制只可用于包含文本的某个字符以 & 和号作前缀的 QLabel。此字符被设为快捷键。见 QKeySequence::mnemonic () 文档编制了解细节 (要显示实际和号,使用 &&)。

可以在对话框中创建 2 数据输入 Widget 并为每个 Widget 创建标签,然后设置几何布局,使各标签位于其数据输入 Widget (其好友) 左侧,例如:

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)
					

采用以上代码,聚焦跳转到 Name 字段当用户按下 Alt+N 时,和跳转到 Phone 字段当用户按 Alt+P 时。

要取消先前设置的好友,调用此函数采用 buddy 设为 nullptr。

另请参阅 buddy (), setText (), QShortcut ,和 setAlignment ().

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

选择文本从位置 start 和对于 length 字符。

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

该函数在 Qt 4.7 引入。

另请参阅 selectedText ().

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

重实现: QFrame::sizeHint () const.