QLabel 类

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

头: #include <QLabel>
qmake: QT += 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::Alignment alignment () const
QWidget * buddy () const
bool hasScaledContents () const
bool hasSelectedText () const
int indent () const
int margin () const
QMovie * movie () const
bool openExternalLinks () const
const QPicture * picture () const
const QPixmap * pixmap () 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 (int num )
void setNum (double num )
void setPicture (const QPicture & picture )
void setPixmap ( const QPixmap & )
void setText ( const QString & )

信号

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

静态公共成员

const QMetaObject staticMetaObject

重实现保护函数

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

额外继承成员

详细描述

The QLabel 小部件提供文本或图像显示。

QLabel is used for displaying text or an image. No user interaction functionality is provided. The visual appearance of the label can be configured in various ways, and it can be used for specifying a focus mnemonic key for another widget.

A QLabel can contain any of the following content types:

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

警告: 当传递 QString 到构造函数或调用 setText (), make sure to sanitize your input, as QLabel tries to guess whether it displays the text as plain text or as rich text, a subset of HTML 4 markup. You may want to call setTextFormat () 明确,如:若期望按纯文本格式却无法控制文本源 (例如:当显示从 Web 加载的数据时)。

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

默认情况下,标签显示 左对齐,垂直居中 文本和图像,要显示文本中的任何 Tab 都会 自动展开 . However, the look of a QLabel can be adjusted and fine-tuned in several ways.

The positioning of the content within the QLabel widget area can be tuned with 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);
					

The properties and functions QLabel 继承自 QFrame 还可以用于指定要用于任何给定标签的 Widget 框架。

A QLabel is often used as a label for an interactive widget. For this use QLabel provides a useful mechanism for adding an mnemonic (see QKeySequence ) that will set the keyboard focus to the other widget (called the QLabel 's "buddy"). For example:

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

This property holds the label's pixmap

If no pixmap has been set this will return nullptr.

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

访问函数:

const QPixmap * pixmap () 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 ( QWidget * parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

构造空标签。

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

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

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 *QLabel:: buddy () const

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

另请参阅 setBuddy ().

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

重实现自 QFrame::changeEvent ().

[slot] void QLabel:: clear ()

清零任何标签内容。

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

重实现自 QWidget::contextMenuEvent ().

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

重实现自 QFrame::event ().

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

重实现自 QWidget::focusInEvent ().

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

重实现自 QWidget::focusNextPrevChild ().

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

重实现自 QWidget::focusOutEvent ().

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

重实现自 QWidget::heightForWidth ().

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

重实现自 QWidget::keyPressEvent ().

[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 ().

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

重实现自 QWidget::minimumSizeHint ().

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

重实现自 QWidget::mouseMoveEvent ().

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

重实现自 QWidget::mousePressEvent ().

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

重实现自 QWidget::mouseReleaseEvent ().

QMovie *QLabel:: movie () const

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

另请参阅 setMovie ().

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

重实现自 QFrame::paintEvent ().

const QPicture *QLabel:: picture () const

Returns the label's picture or nullptr if the label doesn't have a picture.

另请参阅 setPicture ().

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 ().

[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 ().

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 ().