QLabel 小部件提供文本或图像显示。 更多...
头: | #include <QLabel> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
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 |
(从 6.0 起)
QPicture
|
picture () const |
QPixmap | pixmap () const |
(since 6.1)
QTextDocument::ResourceProvider
|
resourceProvider () 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 ) |
(since 6.1)
void
|
setResourceProvider (const QTextDocument::ResourceProvider & provider ) |
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 ) |
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 .
此特性保持标签内容的对齐方式
默认情况下,标签内容左对齐且垂直居中。
访问函数:
Qt::Alignment | alignment () const |
void | setAlignment (Qt::Alignment) |
另请参阅 text .
[read-only]
hasSelectedText
: const
bool
此特性保持是否有选中任何文本。
hasSelectedText() 返回
true
若用户有选中部分或全部文本;否则返回
false
.
默认情况下,此特性为
false
.
注意: The textInteractionFlags 设置标签需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。
访问函数:
bool | hasSelectedText () const |
另请参阅 selectedText ().
此特性保持标签的文本缩进 (以像素为单位)
若标签显示文本,缩进被应用到左边缘,若 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 ().
此特性保存边距的宽度
边距是框架最内像素和内容最外像素之间的距离。
默认边距为 0。
访问函数:
int | margin () const |
void | setMargin (int) |
另请参阅 indent .
指定是否 QLabel 应自动打开链接使用 QDesktopServices::openUrl () 而不是发射 linkActivated () 信号。
注意: The textInteractionFlags 在标签上设置需要包括 LinksAccessibleByMouse 或 LinksAccessibleByKeyboard。
默认值为 false。
访问函数:
bool | openExternalLinks () const |
void | setOpenExternalLinks (bool open ) |
另请参阅 textInteractionFlags ().
此特性保持标签的像素图。
设置像素图会清零任何之前内容。好友快捷方式 (若有的话) 被禁用。
访问函数:
QPixmap | pixmap () const |
void | setPixmap (const QPixmap &) |
此特性保持标签是否比例缩放其内容,以填充所有可用空间。
当启用且标签展示像素图时,它将比例缩放像素图以填充可用空间。
此特性默认为 false。
访问函数:
bool | hasScaledContents () const |
void | setScaledContents (bool) |
[read-only]
selectedText
: const
QString
此特性保持选中文本
若没有选中文本,此特性的值为空字符串。
默认情况下,此特性包含空字符串。
注意: The textInteractionFlags 设置标签需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。
访问函数:
QString | selectedText () const |
另请参阅 hasSelectedText ().
此特性保持标签的文本
若没有设置文本,这会返回空字符串。设置文本将清零任何先前内容。
将把文本解释成纯文本 (或富文本),从属文本格式设定;见 setTextFormat ()。默认设置为 Qt::AutoText ;即 QLabel 将试着自动检测文本集格式。见 支持的 HTML 子集 对于富文本的定义。
若有设置好友,从新文本更新好友助记键。
注意, QLabel 非常适合显示小富文本文档,譬如,从标签调色板和字体特性获取文档具体设定 (字体、文本颜色、链接颜色) 的小文档。对于大文档,使用 QTextEdit 以只读方式代替。 QTextEdit 还能提供滚动条,当有必要时。
注意: 此函数启用鼠标追踪若 text 包含富文本。
访问函数:
QString | text () const |
void | setText (const QString &) |
另请参阅 setTextFormat (), setBuddy (),和 alignment .
此特性保持标签的文本格式
见 Qt::TextFormat 枚举了解可能选项的解释。
默认格式为 Qt::AutoText .
访问函数:
Qt::TextFormat | textFormat () const |
void | setTextFormat (Qt::TextFormat) |
另请参阅 text ().
指定标签应如何与用户输入交互,若它显示文本。
若标志包含 Qt::LinksAccessibleByKeyboard 聚焦策略还被自动设为 Qt::StrongFocus 。若 Qt::TextSelectableByKeyboard 有设置那么聚焦策略被设为 Qt::ClickFocus .
默认值为 Qt::LinksAccessibleByMouse .
访问函数:
Qt::TextInteractionFlags | textInteractionFlags () const |
void | setTextInteractionFlags (Qt::TextInteractionFlags flags ) |
此特性保持标签的自动换行策略
若此特性为
true
那么有必要在单词分割处换行标签文本;否则,根本不换行。
默认情况下,自动换行是禁用的。
访问函数:
bool | wordWrap () const |
void | setWordWrap (bool on ) |
另请参阅 text .
[explicit]
QLabel::
QLabel
(
QWidget
*
parent
= nullptr,
Qt::WindowFlags
f
= Qt::WindowFlags())
构造空标签。
The parent 和 Widget 标志 f ,自变量被传递给 QFrame 构造函数。
另请参阅 setAlignment (), setFrameStyle (),和 setIndent ().
[explicit]
QLabel::
QLabel
(const
QString
&
text
,
QWidget
*
parent
= nullptr,
Qt::WindowFlags
f
= Qt::WindowFlags())
构造标签显示文本 text .
The parent 和 Widget 标志 f ,自变量被传递给 QFrame 构造函数。
另请参阅 setText (), setAlignment (), setFrameStyle (),和 setIndent ().
[virtual noexcept]
QLabel::
~QLabel
()
销毁标签。
返回此标签的好友,或 nullptr 若目前未设置好友。
另请参阅 setBuddy ().
[override virtual protected]
void
QLabel::
changeEvent
(
QEvent
*
ev
)
重实现: QFrame::changeEvent (QEvent *ev).
[slot]
void
QLabel::
clear
()
清零任何标签内容。
[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).
[signal]
void
QLabel::
linkActivated
(const
QString
&
link
)
此信号被发射当用户点击链接时。由锚点引用的 URL 被传入 link .
另请参阅 linkHovered ().
[signal]
void
QLabel::
linkHovered
(const
QString
&
link
)
此信号被发射当用户悬停在链接之上时。通过锚点引用的 URL 被传入 link .
另请参阅 linkActivated ().
[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).
返回指向标签影片的指针,或 nullptr 若没有设置影片。
另请参阅 setMovie ().
[override virtual protected]
void
QLabel::
paintEvent
(
QPaintEvent
*)
重实现: QFrame::paintEvent (QPaintEvent *).
[since 6.0]
QPicture
QLabel::
picture
() const
返回标签的图片。
该函数在 Qt 6.0 引入。
[since 6.1]
QTextDocument::ResourceProvider
QLabel::
resourceProvider
() const
返回用于此标签富文本的资源提供程序。
该函数在 Qt 6.1 引入。
另请参阅 setResourceProvider ().
selectionStart() 返回标签第 1 选中字符的索引,或 -1 若未选中文本。
注意: The textInteractionFlags 设置标签需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。
另请参阅 selectedText ().
将此标签的好友设为 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 。清零任何先前内容。标签未拥有影片的所有权。
好友快捷方式 (若有的话) 被禁用。
[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 为此标签的富文本资源。
注意: 标签 does not 拥有所有权对于 provider .
该函数在 Qt 6.1 引入。
另请参阅 resourceProvider ().
选择文本从位置 start 和对于 length 字符。
注意: The textInteractionFlags 设置标签需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。
另请参阅 selectedText ().
[override virtual]
QSize
QLabel::
sizeHint
() const
重实现: QFrame::sizeHint() const .