Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QLabel Class Reference
[QtGui module]

The QLabel widget provides a text or image display. More...

 #include <QLabel>

Inherits QFrame.


Properties

  • 6 properties inherited from QFrame
  • 58 properties inherited from QWidget
  • 1 property inherited from QObject

Public Functions

QLabel ( QWidget * parent = 0, Qt::WindowFlags f = 0 )
QLabel ( const QString & text, QWidget * parent = 0, Qt::WindowFlags f = 0 )
~QLabel ()
Qt::Alignment alignment () const
QWidget * buddy () const
bool hasScaledContents () const
int indent () const
int margin () const
QMovie * movie () const
bool openExternalLinks () const
const QPicture * picture () const
const QPixmap * pixmap () const
void setAlignment ( Qt::Alignment )
void setBuddy ( QWidget * buddy )
void setIndent ( int )
void setMargin ( int )
void setOpenExternalLinks ( bool open )
void setScaledContents ( bool )
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

Reimplemented Public Functions

virtual int heightForWidth ( int w ) const
virtual QSize minimumSizeHint () const
virtual QSize sizeHint () const
  • 14 public functions inherited from QFrame
  • 217 public functions inherited from QWidget
  • 29 public functions inherited from QObject
  • 13 public functions inherited from QPaintDevice

Public Slots

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 & )
  • 19 public slots inherited from QWidget
  • 1 public slot inherited from QObject

Signals

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

Reimplemented Protected Functions

virtual void changeEvent ( QEvent * ev )
virtual void contextMenuEvent ( QContextMenuEvent * ev )
virtual bool event ( QEvent * e )
virtual void focusInEvent ( QFocusEvent * ev )
virtual bool focusNextPrevChild ( bool next )
virtual void focusOutEvent ( QFocusEvent * ev )
virtual void keyPressEvent ( QKeyEvent * ev )
virtual void mouseMoveEvent ( QMouseEvent * ev )
virtual void mousePressEvent ( QMouseEvent * ev )
virtual void mouseReleaseEvent ( QMouseEvent * ev )
virtual void paintEvent ( QPaintEvent * )
  • 3 protected functions inherited from QFrame
  • 37 protected functions inherited from QWidget
  • 7 protected functions inherited from QObject
  • 1 protected function inherited from QPaintDevice

Additional Inherited Members

  • 4 static public members inherited from QWidget
  • 5 static public members inherited from QObject
  • 3 protected functions inherited from QFrame
  • 37 protected functions inherited from QWidget
  • 7 protected functions inherited from QObject
  • 1 protected function inherited from QPaintDevice
  • 1 protected slot inherited from QWidget

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

 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 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->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 labelA label shown in the Macintosh widget style.
Screenshot of a Plastique style labelA label shown in the Plastique widget style.
Screenshot of a Windows XP style labelA label shown in the Windows XP widget style.

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


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:

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

See also text.

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 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 alignment, margin, frameWidth(), and 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 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.

This property was introduced in Qt 4.2.

Access functions:

bool openExternalLinks () const
void setOpenExternalLinks ( bool open )

See also textInteractionFlags().

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

const QPixmap * 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 )

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.

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.

Access functions:

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

See also setTextFormat(), setBuddy(), and 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:

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

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.

This property was introduced in Qt 4.2.

Access functions:

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

wordWrap : 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.

Access functions:

bool wordWrap () const
void setWordWrap ( bool on )

See also text.


Member Function Documentation

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

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

QLabel::~QLabel ()

Destroys the label.

QWidget * QLabel::buddy () const

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

See also setBuddy().

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

Reimplemented from QWidget::changeEvent().

void QLabel::clear ()   [slot]

Clears any label contents.

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

Reimplemented from QWidget::contextMenuEvent().

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

Reimplemented from QObject::event().

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

Reimplemented from QWidget::focusInEvent().

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

Reimplemented from QWidget::focusNextPrevChild().

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

Reimplemented from QWidget::focusOutEvent().

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

Reimplemented from QWidget::heightForWidth().

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

Reimplemented from QWidget::keyPressEvent().

void QLabel::linkActivated ( 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.

This function was introduced in Qt 4.2.

See also linkHovered().

void QLabel::linkHovered ( 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.

This function was introduced in Qt 4.2.

See also linkActivated().

QSize QLabel::minimumSizeHint () const   [virtual]

Reimplemented from QWidget::minimumSizeHint().

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

Reimplemented from QWidget::mouseMoveEvent().

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

Reimplemented from QWidget::mousePressEvent().

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

Reimplemented from QWidget::mouseReleaseEvent().

QMovie * QLabel::movie () const

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

See also setMovie().

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

Reimplemented from QWidget::paintEvent().

const QPicture * QLabel::picture () const

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

See also setPicture().

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

void QLabel::setMovie ( 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().

void QLabel::setNum ( 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().

void QLabel::setNum ( 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().

void QLabel::setPicture ( 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().

QSize QLabel::sizeHint () const   [virtual]

Reimplemented from QWidget::sizeHint().

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. Microsoft ouvre aux autres compilateurs C++ AMP, la spécification pour la conception d'applications parallèles C++ utilisant le GPU 22
  2. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  3. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 17
  4. RIM : « 13 % des développeurs ont gagné plus de 100 000 $ sur l'AppWord », Qt et open-source au menu du BlackBerry DevCon Europe 0
  5. BlackBerry 10 : premières images du prochain OS de RIM qui devrait intégrer des widgets et des tuiles inspirées de Windows Phone 0
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
Page suivante

Le Qt Labs au hasard

Logo

QMake et au-delà

Les Qt Labs sont les laboratoires des développeurs de Qt, où ils peuvent partager des impressions sur le framework, son utilisation, ce que pourrait être son futur. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.6-snapshot
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web