QLabel Class▲
-
Header: QLabel
-
CMake:
find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
-
qmake: QT += widgets
-
Inherits: QFrame
-
Group: QLabel is part of basicwidgets
Detailed Description▲
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:
Content |
Setting |
---|---|
Plain text |
|
Rich text |
|
A pixmap |
|
A movie |
|
A number |
Pass an int or a double to setNum(), which converts the number to plain text. |
Nothing |
The same as an empty plain text. This is the default. Set by clear(). |
When passing a QString to the constructor or calling 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() explicitly, e.g. in case you expect the text to be in plain format but cannot control the text source (for instance when displaying data loaded from the Web).
When the content is changed using any of these functions, any previous content is cleared.
By default, labels display left-aligned, vertically-centered text and images, where any tabs in the text to be displayed are automatically expanded. 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() and setIndent(). Text content can also wrap lines along word boundaries with setWordWrap(). For example, this code sets up a sunken panel with a two-line text in the bottom right corner (both lines being flush with the right side of the label):
QLabel *
label =
new
QLabel(this
);
label-&
gt;setFrameStyle(QFrame::
Panel |
QFrame::
Sunken);
label-&
gt;setText("first line
\n
second line"
);
label-&
gt;setAlignment(Qt::
AlignBottom |
Qt::
AlignRight);
The properties and functions QLabel inherits from QFrame can also be used to specify the widget frame to be used for any given label.
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-&
gt;setBuddy(phoneEdit);
In this example, keyboard focus is transferred to the label's buddy (the QLineEdit) when the user presses Alt+P. If the buddy was a button (inheriting from QAbstractButton), triggering the mnemonic would emulate a button click.
See Also▲
Property Documentation▲
alignment : Qt::Alignment▲
This property holds the alignment of the label's contents
By default, the contents of the label are left-aligned and vertically-centered.
Access functions:
-
alignment() const
-
void setAlignment(Qt::Alignment)
See Also▲
See also text
[read-only] hasSelectedText : const bool▲
This property holds whether there is any text selected
hasSelectedText() returns true if some or all of the text has been selected by the user; otherwise returns false.
By default, this property is false.
Note: The textInteractionFlags set on the label need to include either TextSelectableByMouse or TextSelectableByKeyboard.
Access functions:
-
bool hasSelectedText() const
See Also▲
See also selectedText()
indent : int▲
This property holds the label's text indent in pixels
If a label displays text, the indent applies to the left edge if alignment() is Qt::AlignLeft, to the right edge if alignment() is Qt::AlignRight, to the top edge if alignment() is Qt::AlignTop, and to the bottom edge if alignment() is Qt::AlignBottom.
If indent is negative, or if no indent has been set, the label computes the effective indent as follows: If frameWidth() is 0, the effective indent becomes 0. If frameWidth() is greater than 0, the effective indent becomes half the width of the "x" character of the widget's current font().
By default, the indent is -1, meaning that an effective indent is calculating in the manner described above.
Access functions:
-
int indent() const
-
void setIndent(int)
See Also▲
See also alignment, margin, frameWidth(), font()
margin : int▲
This property holds the width of the margin
The margin is the distance between the innermost pixel of the frame and the outermost pixel of contents.
The default margin is 0.
Access functions:
-
int margin() const
-
void setMargin(int)
See Also▲
See also indent
openExternalLinks : bool▲
Specifies whether QLabel should automatically open links using QDesktopServices::openUrl() instead of emitting the linkActivated() signal.
Note: The textInteractionFlags set on the label need to include either LinksAccessibleByMouse or LinksAccessibleByKeyboard.
The default value is false.
Access functions:
-
bool openExternalLinks() const
-
void setOpenExternalLinks(bool open)
See Also▲
See also textInteractionFlags()
pixmap : QPixmap▲
This property holds the label's pixmap.
Setting the pixmap clears any previous content. The buddy shortcut, if any, is disabled.
Access functions:
-
pixmap() const
-
void setPixmap(const QPixmap &)
scaledContents : bool▲
This property holds whether the label will scale its contents to fill all available space.
When enabled and the label shows a pixmap, it will scale the pixmap to fill the available space.
This property's default is false.
Access functions:
-
bool hasScaledContents() const
-
void setScaledContents(bool)
[read-only] selectedText : const QString▲
This property holds the selected text
If there is no selected text this property's value is an empty string.
By default, this property contains an empty string.
Note: The textInteractionFlags set on the label need to include either TextSelectableByMouse or TextSelectableByKeyboard.
Access functions:
-
selectedText() const
See Also▲
See also hasSelectedText()
text : QString▲
This property holds the label's text
If no text has been set this will return an empty string. Setting the text clears any previous content.
The text will be interpreted either as plain text or as rich text, depending on the text format setting; see setTextFormat(). The default setting is Qt::AutoText; i.e. QLabel will try to auto-detect the format of the text set. See Supported HTML Subset for the definition of rich text.
If a buddy has been set, the buddy mnemonic key is updated from the new text.
Note that QLabel is well-suited to display small rich text documents, such as small documents that get their document specific settings (font, text color, link color) from the label's palette and font properties. For large documents, use QTextEdit in read-only mode instead. QTextEdit can also provide a scroll bar when necessary.
This function enables mouse tracking if text contains rich text.
Access functions:
-
text() const
-
void setText(const QString &)
See Also▲
See also setTextFormat(), setBuddy(), alignment
textFormat : Qt::TextFormat▲
This property holds the label's text format
See the Qt::TextFormat enum for an explanation of the possible options.
The default format is Qt::AutoText.
Access functions:
-
textFormat() const
-
void setTextFormat(Qt::TextFormat)
See Also▲
See also text()
textInteractionFlags : Qt::TextInteractionFlags▲
Specifies how the label should interact with user input if it displays text.
If the flags contain Qt::LinksAccessibleByKeyboard the focus policy is also automatically set to Qt::StrongFocus. If Qt::TextSelectableByKeyboard is set then the focus policy is set to Qt::ClickFocus.
The default value is Qt::LinksAccessibleByMouse.
Access functions:
-
textInteractionFlags() const
-
void setTextInteractionFlags( flags)
wordWrap : bool▲
Member Function Documentation▲
[explicit] QLabel::QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())▲
Constructs an empty label.
The parent and widget flag f, arguments are passed to the QFrame constructor.
See Also▲
See also setAlignment(), setFrameStyle(), setIndent()
[explicit] QLabel::QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())▲
Constructs a label that displays the text, text.
The parent and widget flag f, arguments are passed to the QFrame constructor.
See Also▲
See also setText(), setAlignment(), setFrameStyle(), setIndent()
[virtual] QLabel::~QLabel()▲
Destroys the label.
QWidget *QLabel::buddy() const▲
[override virtual protected] void QLabel::changeEvent(QEvent *ev)▲
Reimplements: QFrame::changeEvent(QEvent *ev).
void QLabel::clear()▲
Clears any label contents.
[override virtual protected] void QLabel::contextMenuEvent(QContextMenuEvent *ev)▲
Reimplements: QWidget::contextMenuEvent(QContextMenuEvent *event).
[override virtual protected] bool QLabel::event(QEvent *e)▲
Reimplements: QFrame::event(QEvent *e).
[override virtual protected] void QLabel::focusInEvent(QFocusEvent *ev)▲
Reimplements: QWidget::focusInEvent(QFocusEvent *event).
[override virtual protected] bool QLabel::focusNextPrevChild(bool next)▲
Reimplements: QWidget::focusNextPrevChild(bool next).
[override virtual protected] void QLabel::focusOutEvent(QFocusEvent *ev)▲
Reimplements: QWidget::focusOutEvent(QFocusEvent *event).
[override virtual] int QLabel::heightForWidth(int w) const▲
Reimplements: QWidget::heightForWidth(int w) const.
[override virtual protected] void QLabel::keyPressEvent(QKeyEvent *ev)▲
Reimplements: QWidget::keyPressEvent(QKeyEvent *event).
void QLabel::linkActivated(const QString &link)▲
This signal is emitted when the user clicks a link. The URL referred to by the anchor is passed in link.
See Also▲
See also linkHovered()
void QLabel::linkHovered(const QString &link)▲
This signal is emitted when the user hovers over a link. The URL referred to by the anchor is passed in link.
See Also▲
See also linkActivated()
[override virtual] QSize QLabel::minimumSizeHint() const▲
Reimplements an access function for property: QWidget::minimumSizeHint.
[override virtual protected] void QLabel::mouseMoveEvent(QMouseEvent *ev)▲
Reimplements: QWidget::mouseMoveEvent(QMouseEvent *event).
[override virtual protected] void QLabel::mousePressEvent(QMouseEvent *ev)▲
Reimplements: QWidget::mousePressEvent(QMouseEvent *event).
[override virtual protected] void QLabel::mouseReleaseEvent(QMouseEvent *ev)▲
Reimplements: QWidget::mouseReleaseEvent(QMouseEvent *event).
QMovie *QLabel::movie() const▲
Returns a pointer to the label's movie, or nullptr if no movie has been set.
See Also▲
See also setMovie()
[override virtual protected] void QLabel::paintEvent(QPaintEvent *)▲
Reimplements: QFrame::paintEvent(QPaintEvent *).
[since 6.0] QPicture QLabel::picture() const▲
Returns the label's picture.
This function was introduced in Qt 6.0.
[since 6.1] QTextDocument::ResourceProvider QLabel::resourceProvider() const▲
Returns the resource provider for rich text of this label.
This function was introduced in Qt 6.1.
See Also▲
See also setResourceProvider()
int QLabel::selectionStart() const▲
selectionStart() returns the index of the first selected character in the label or -1 if no text is selected.
Note: The textInteractionFlags set on the label need to include either TextSelectableByMouse or TextSelectableByKeyboard.
See Also▲
See also selectedText()
void QLabel::setBuddy(QWidget *buddy)▲
Sets this label's buddy to buddy.
When the user presses the shortcut key indicated by this label, the keyboard focus is transferred to the label's buddy widget.
The buddy mechanism is only available for QLabels that contain text in which one character is prefixed with an ampersand, '&'. This character is set as the shortcut key. See the QKeySequence::mnemonic() documentation for details (to display an actual ampersand, use '&&').
In a dialog, you might create two data entry widgets and a label for each, and set up the geometry layout so each label is just to the left of its data entry widget (its "buddy"), for example:
QLineEdit *
nameEdit =
new
QLineEdit(this
);
QLabel *
nameLabel =
new
QLabel("&Name:"
, this
);
nameLabel-&
gt;setBuddy(nameEdit);
QLineEdit *
phoneEdit =
new
QLineEdit(this
);
QLabel *
phoneLabel =
new
QLabel("&Phone:"
, this
);
phoneLabel-&
gt;setBuddy(phoneEdit);
// (layout setup not shown)
With the code above, the focus jumps to the Name field when the user presses Alt+N, and to the Phone field when the user presses Alt+P.
To unset a previously set buddy, call this function with buddy set to nullptr.
See Also▲
See also buddy(), setText(), QShortcut, setAlignment()
void QLabel::setMovie(QMovie *movie)▲
Sets the label contents to movie. Any previous content is cleared. The label does NOT take ownership of the movie.
The buddy shortcut, if any, is disabled.
See Also▲
void QLabel::setNum(int num)▲
Sets the label contents to plain text containing the textual representation of integer num. Any previous content is cleared. Does nothing if the integer's string representation is the same as the current contents of the label.
The buddy shortcut, if any, is disabled.
See Also▲
See also setText(), QString::setNum(), setBuddy()
void QLabel::setNum(double num)▲
This is an overloaded function.
Sets the label contents to plain text containing the textual representation of double num. Any previous content is cleared. Does nothing if the double's string representation is the same as the current contents of the label.
The buddy shortcut, if any, is disabled.
See Also▲
See also setText(), QString::setNum(), setBuddy()
void QLabel::setPicture(const QPicture &picture)▲
Sets the label contents to picture. Any previous content is cleared.
The buddy shortcut, if any, is disabled.
See Also▲
[since 6.1] void QLabel::setResourceProvider(const QTextDocument::ResourceProvider &provider)▲
Sets the provider of resources for rich text of this label.
The label does not take ownership of the provider.
This function was introduced in Qt 6.1.
See Also▲
See also resourceProvider()
void QLabel::setSelection(int start, int length)▲
Selects text from position start and for length characters.
Note: The textInteractionFlags set on the label need to include either TextSelectableByMouse or TextSelectableByKeyboard.
See Also▲
See also selectedText()
[override virtual] QSize QLabel::sizeHint() const▲
Reimplements: QFrame::sizeHint() const.
Obsolete Members for QLabel▲
The following members of class QLabel are deprecated. We strongly advise against using them in new code.
Obsolete Member Function Documentation▲
[since 5.15] QPicture QLabel::picture(Qt::ReturnByValueConstant) const▲
This function is deprecated. We strongly advise against using it in new code.
Use the overload without argument instead.
Returns the label's picture.
Previously, Qt provided a version of picture() which returned the picture by-pointer. That version is now removed. This overload allowed to explicitly differentiate between the by-pointer function and the by-value.
This function was introduced in Qt 5.15.
See Also▲
See also setPicture()
[since 5.15] QPixmap QLabel::pixmap(Qt::ReturnByValueConstant) const▲
This function is deprecated. We strongly advise against using it in new code.
Use the overload without argument instead.
Returns the label's pixmap.
Previously, Qt provided a version of pixmap() which returned the pixmap by-pointer. That version has now been removed. This overload allowed to explicitly differentiate between the by-pointer function and the by-value.
QPixmap pixmapVal =
label-&
gt;pixmap(Qt::
ReturnByValue);
This function was introduced in Qt 5.15.
See Also▲
See also setPixmap()