QLabel Class Reference

The QLabel widget provides a text or image display.

  1. #include <QLabel>

Inherits: QFrame.

Detailed Description

The QLabel widget provides a text or image display.

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:

ContentSetting
Plain textPass a QString to setText().
Rich textPass a QString that contains rich text to setText().
A pixmapPass a QPixmap to setPixmap().
A moviePass a QMovie to setMovie().
A numberPass an int or a double to setNum(), which converts the number to plain text.
NothingThe same as an empty plain text. This is the default. Set by clear().

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):

  1. QLabel *label = new QLabel(this);
  2. label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
  3. label->setText("first line\nsecond line");
  4. label->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:

  1.                 QLineEdit* phoneEdit = new QLineEdit(this);
  2. QLabel* phoneLabel = new QLabel("&Phone:", this);
  3. phoneLabel->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.

Screenshot of a Macintosh style label

Screenshot of a Macintosh style label

A label shown in the Macintosh widget style.
Screenshot of a Plastique style label

Screenshot of a Plastique style label

A label shown in the Plastique widget style.
Screenshot of a Windows XP style label

Screenshot of a Windows XP style label

A label shown in the Windows XP widget style.

See also QLineEdit, QTextEdit, QPixmap, QMovie, and GUI Design Handbook: Label.

Properties

Toggle detailsalignmentalignment : 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.

See also text.

Access functions:

Look up this member in the source code.

Toggle detailshasSelectedTexthasSelectedText : 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.

See also selectedText().

Access functions:

    Look up this member in the source code.

    Toggle detailsindentindent : 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 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.

    See also alignment, margin, frameWidth(), and font().

    Access functions:

    Look up this member in the source code.

    Toggle detailsmarginmargin : 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.

    See also indent.

    Access functions:

    Look up this member in the source code.

    Toggle detailsopenExternalLinksopenExternalLinks : 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.

    See also textInteractionFlags().

    Access functions:

    Look up this member in the source code.

    Toggle detailspixmappixmap : QPixmap

    This property holds the label's pixmap

    If no pixmap has been set this will return 0.

    Setting the pixmap clears any previous content. The buddy shortcut, if any, is disabled.

    Access functions:

    Look up this member in the source code.

    Toggle detailsscaledContentsscaledContents : 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:

    Look up this member in the source code.

    Toggle detailsselectedTextselectedText : 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.

    See also hasSelectedText().

    Access functions:

      Look up this member in the source code.

      Toggle detailstexttext : 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.

      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.

      Note: This function enables mouse tracking if text contains rich text.

      See also setTextFormat(), setBuddy(), and alignment.

      Access functions:

      Look up this member in the source code.

      Toggle detailstextFormattextFormat : 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.

      See also text().

      Access functions:

      Look up this member in the source code.

      Toggle detailstextInteractionFlagstextInteractionFlags : 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:

      Look up this member in the source code.

      Toggle detailswordWrapwordWrap : bool

      This property holds the label's word-wrapping policy

      If this property is true then label text is wrapped where necessary at word-breaks; otherwise it is not wrapped at all.

      By default, word wrap is disabled.

      See also text.

      Access functions:

      Look up this member in the source code.

        Public Functions

        Toggle details QLabel

        QLabelQLabel ( QWidget *parent=0 , Qt::WindowFlags f=0 ( QWidget *parent=0 , Qt::WindowFlags f=0 )

        Constructs an empty label.

        The parent and widget flag f, arguments are passed to the QFrame constructor.

        See also setAlignment(), setFrameStyle(), and setIndent().

        Look up this member in the source code.

        Toggle details QLabel

        QLabelQLabel ( const QString &text , QWidget *parent=0 , Qt::WindowFlags f=0 ...) ( const QString &text , QWidget *parent=0 , Qt::WindowFlags f=0 )

        Constructs a label that displays the text, text.

        The parent and widget flag f, arguments are passed to the QFrame constructor.

        See also setText(), setAlignment(), setFrameStyle(), and setIndent().

        Look up this member in the source code.

        Toggle details QLabel

        ~QLabel~QLabel () ()

        Destroys the label.

        Look up this member in the source code.

        Toggle details QWidget * QLabel

        buddybuddy () ()const

        Returns this label's buddy, or 0 if no buddy is currently set.

        See also setBuddy().

        Look up this member in the source code.

        Toggle details void QLabel

        changeEventchangeEvent ( QEvent *ev ) ( QEvent *ev ) [virtual protected]

        Reimplemented from QWidget::changeEvent().

        Look up this member in the source code.

        Toggle details void QLabel

        contextMenuEventcontextMenuEvent ( QContextMenuEvent *ev ) ( QContextMenuEvent *ev ) [virtual protected]

        Reimplemented from QWidget::contextMenuEvent().

        Look up this member in the source code.

        Toggle details bool QLabel

        eventevent ( QEvent *e ) ( QEvent *e ) [virtual protected]

        Reimplemented from QObject::event().

        Look up this member in the source code.

        Toggle details void QLabel

        focusInEventfocusInEvent ( QFocusEvent *ev ) ( QFocusEvent *ev ) [virtual protected]

        Reimplemented from QWidget::focusInEvent().

        Look up this member in the source code.

        Toggle details bool QLabel

        focusNextPrevChildfocusNextPrevChild ( bool next ) ( bool next ) [virtual protected]

        Reimplemented from QWidget::focusNextPrevChild().

        Look up this member in the source code.

        Toggle details void QLabel

        focusOutEventfocusOutEvent ( QFocusEvent *ev ) ( QFocusEvent *ev ) [virtual protected]

        Reimplemented from QWidget::focusOutEvent().

        Look up this member in the source code.

        Toggle details int QLabel

        heightForWidthheightForWidth ( int w ) ( int w )const [virtual]

        Reimplemented from QWidget::heightForWidth().

        Look up this member in the source code.

        Toggle details void QLabel

        keyPressEventkeyPressEvent ( QKeyEvent *ev ) ( QKeyEvent *ev ) [virtual protected]

        Reimplemented from QWidget::keyPressEvent().

        Look up this member in the source code.

        Toggle details QSize QLabel

        minimumSizeHintminimumSizeHint () ()const [virtual]

        Reimplemented from QWidget::minimumSizeHint().

        Look up this member in the source code.

        Toggle details void QLabel

        mouseMoveEventmouseMoveEvent ( QMouseEvent *ev ) ( QMouseEvent *ev ) [virtual protected]

        Reimplemented from QWidget::mouseMoveEvent().

        Look up this member in the source code.

        Toggle details void QLabel

        mousePressEventmousePressEvent ( QMouseEvent *ev ) ( QMouseEvent *ev ) [virtual protected]

        Reimplemented from QWidget::mousePressEvent().

        Look up this member in the source code.

        Toggle details void QLabel

        mouseReleaseEventmouseReleaseEvent ( QMouseEvent *ev ) ( QMouseEvent *ev ) [virtual protected]

        Reimplemented from QWidget::mouseReleaseEvent().

        Look up this member in the source code.

        Toggle details QMovie * QLabel

        moviemovie () ()const

        Returns a pointer to the label's movie, or 0 if no movie has been set.

        See also setMovie().

        Look up this member in the source code.

        Toggle details void QLabel

        paintEventpaintEvent ( QPaintEvent * ) ( QPaintEvent * ) [virtual protected]

        Reimplemented from QWidget::paintEvent().

        Look up this member in the source code.

        Toggle details const QPicture * QLabel

        picturepicture () ()const

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

        See also setPicture().

        Look up this member in the source code.

        Toggle details int QLabel

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

        Look up this member in the source code.

        Toggle details void QLabel

        setBuddysetBuddy ( QWidget *buddy ) ( 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:

        1.                     QLineEdit *nameEd  = new QLineEdit(this);
        2. QLabel    *nameLb  = new QLabel("&Name:", this);
        3. nameLb->setBuddy(nameEd);
        4. QLineEdit *phoneEd = new QLineEdit(this);
        5. QLabel    *phoneLb = new QLabel("&Phone:", this);
        6. phoneLb->setBuddy(phoneEd);
        7. // (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 0.

        See also buddy(), setText(), QShortcut, and setAlignment().

        Look up this member in the source code.

        Toggle details void QLabel

        setSelectionsetSelection ( int start , int length ) ( 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 selectedText().

        Look up this member in the source code.

        Toggle details QSize QLabel

        sizeHintsizeHint () ()const [virtual]

        Reimplemented from QWidget::sizeHint().

        Look up this member in the source code.

        Toggle details QLabel

        QLabelQLabel ( QWidget *parent , const char *name , Qt::WindowFlags f=0 ...) ( QWidget *parent , const char *name , Qt::WindowFlags f=0 ) Qt3-support

        Constructs an empty label.

        The parent, name and widget flag f, arguments are passed to the QFrame constructor.

        See also setAlignment(), setFrameStyle(), and setIndent().

        Look up this member in the source code.

        Toggle details QLabel

        QLabelQLabel ( const QString &text , QWidget *parent , const char *name , Qt::WindowFlags f=0 ...) ( const QString &text , QWidget *parent , const char *name , Qt::WindowFlags f=0 ) Qt3-support

        Constructs a label that displays the text, text.

        The parent, name and widget flag f, arguments are passed to the QFrame constructor.

        See also setText(), setAlignment(), setFrameStyle(), and setIndent().

        Look up this member in the source code.

        Toggle details QLabel

        QLabelQLabel ( QWidget *buddy , const QString &text , QWidget *parent=0 , const char *name=0 , Qt::WindowFlags f=0 ...) ( QWidget *buddy , const QString &text , QWidget *parent=0 , const char *name=0 , Qt::WindowFlags f=0 ) Qt3-support

        Constructs a label that displays the text text. The label has a buddy widget, buddy.

        If the text contains an underlined letter (a letter preceded by an ampersand, &), when the user presses Alt+ the underlined letter, focus is passed to the buddy widget.

        The parent, name and widget flag, f, arguments are passed to the QFrame constructor.

        See also setText(), setBuddy(), setAlignment(), setFrameStyle(), and setIndent().

        Look up this member in the source code.

        Toggle details void QLabel

        setAlignmentsetAlignment ( int alignment ) ( int alignment ) Qt3-support

        Use setAlignment(Qt::Alignment) instead.

        If alignment specifies text flags as well, use setTextFormat() to set those.

        Look up this member in the source code.

        Signals

        Toggle details void QLabel

        linkActivatedlinkActivated ( const QString &link ) ( const QString &link ) [signal]

        This signal is emitted when the user clicks a link. The URL referred to by the anchor is passed in link.

        See also linkHovered().

        Look up this member in the source code.

        Toggle details void QLabel

        linkHoveredlinkHovered ( const QString &link ) ( const QString &link ) [signal]

        This signal is emitted when the user hovers over a link. The URL referred to by the anchor is passed in link.

        See also linkActivated().

        Look up this member in the source code.

        Public Slots

        Toggle details void QLabel

        clearclear () () [slot]

        Clears any label contents.

        Look up this member in the source code.

        Toggle details void QLabel

        setMoviesetMovie ( QMovie *movie ) ( QMovie *movie ) [slot]

        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 movie() and setBuddy().

        Look up this member in the source code.

        Toggle details void QLabel

        setNumsetNum ( int num ) ( int num ) [slot]

        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 setText(), QString::setNum(), and setBuddy().

        Look up this member in the source code.

        Toggle details void QLabel

        setNumsetNum ( double num ) ( double num ) [slot]

        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 setText(), QString::setNum(), and setBuddy().

        Look up this member in the source code.

        Toggle details void QLabel

        setPicturesetPicture ( const QPicture &picture ) ( const QPicture &picture ) [slot]

        Sets the label contents to picture. Any previous content is cleared.

        The buddy shortcut, if any, is disabled.

        See also picture() and setBuddy().

        Look up this member in the source code.

        Notes provided by the Qt Community
        Informative
        • 5

        Votes: 2

        Coverage: Qt library 4.7, 4.8, 5.0

        Picture of Rahul Das Rahul Das

        Robot Herder
        7 notes

        Clicked Signal From QLabel

        A “clicked” signal may sometimes be required from a label, but there is no “clicked” signal emitted by QLabel.

        To make it clickable : Catch the mouse press event on the label. Then emit ‘clicked’ signal.

        Example :

        1. void ClickableLabel::mousePressEvent ( QMouseEvent * event )
        2.   {
        3.       QLabel::mousePressEvent(event);
        4.       emit clicked();
        5.   }

        To make sure other funcionality still works, you also need to call the base class implementation of the event.

        [Revisions]