Sur cette page

QLabel Class

Le widget QLabel permet d'afficher du texte ou une image. En savoir plus...

En-tête : #include <QLabel>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Hérite de : QFrame

Propriétés

Fonctions publiques

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
(since 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

Fonctions publiques réimplémentées

virtual int heightForWidth(int w) const override
virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

Slots publics

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

Signaux

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

Fonctions protégées réimplémentées

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

Description détaillée

Étiquette

QLabel sert à afficher du texte ou une image. Aucune fonctionnalité d'interaction avec l'utilisateur n'est fournie. L'apparence visuelle de l'étiquette peut être configurée de différentes manières, et celle-ci peut être utilisée pour spécifier une touche mnémonique de focus pour un autre widget.

Un QLabel peut contenir l’un des types de contenu suivants :

ContenuParamètre
Texte brutTransmettez une chaîne de caractères ( QString ) à la fonction ` setText()`.
Texte formatéTransmettez un QString contenant du texte enrichi à la fonction setText().
Une image bitmapTransmettez une QPixmap à la fonction setPixmap().
Une vidéoTransmettez une QMovie à la fonction setMovie().
Un nombreTransmettez un entier (int) ou un nombre à virgule flottante (double) à la fonction setNum(), qui convertit le nombre en texte brut.
RienÉquivaut à du texte brut vide. Il s'agit de la valeur par défaut. Définie par clear().

Avertissement : lorsque vous passez un objet ` QString ` au constructeur ou que vous appelez la méthode ` setText()`, veillez à valider vos données d’entrée, car `QLabel` tente de deviner s’il doit afficher le texte au format texte brut ou au format texte enrichi, un sous-ensemble du balisage HTML 4. Vous pouvez appeler explicitement la fonction setTextFormat() (), par exemple si vous vous attendez à ce que le texte soit au format brut mais que vous ne pouvez pas contrôler la source du texte (notamment lors de l’affichage de données chargées depuis le Web).

Lorsque le contenu est modifié à l’aide de l’une de ces fonctions, tout contenu précédent est effacé.

Par défaut, les étiquettes affichent du texte et des images au format « left-aligned, vertically-centered », les retours à la ligne du texte à afficher étant gérés par « automatically expanded ». Cependant, l’apparence d’un QLabel peut être ajustée et affinée de plusieurs façons.

Le positionnement du contenu dans la zone du widget QLabel peut être ajusté à l’aide de ` setAlignment()` et ` setIndent()`. Le contenu textuel peut également être mis en ligne à la fin des mots grâce à ` setWordWrap()`. Par exemple, ce code configure un panneau en retrait avec un texte de deux lignes dans le coin inférieur droit (les deux lignes étant alignées sur le bord droit de l’étiquette) :

QLabel *label = new QLabel(this);
label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
label->setText("first line\nsecond line");
label->setAlignment(Qt::AlignBottom | Qt::AlignRight);

Les propriétés et fonctions dont QLabel hérite de QFrame peuvent également être utilisées pour spécifier le cadre de widget à utiliser pour une étiquette donnée.

Un QLabel est souvent utilisé comme étiquette pour un widget interactif. À cette fin, QLabel fournit un mécanisme utile permettant d'ajouter un mnémonique (voir QKeySequence) qui placera le focus clavier sur l'autre widget (appelé le « buddy » du QLabel). Par exemple :

QLineEdit *phoneEdit = new QLineEdit(this);
QLabel *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);

Dans cet exemple, le focus clavier est transféré vers le « buddy » de l'étiquette ( QLineEdit) lorsque l'utilisateur appuie sur Alt+P. Si le « buddy » était un bouton (héritant de QAbstractButton), le déclenchement du mnémonique simulentait un clic sur le bouton.

Voir également QLineEdit, QTextEdit, QPixmap et QMovie.

Documentation sur les propriétés

alignment : Qt::Alignment

Cette propriété définit l'alignement du contenu de l'étiquette.

Par défaut, le contenu de l'étiquette est aligné à gauche et centré verticalement.

Fonctions d'accès :

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

Voir également text.

[read-only] hasSelectedText : bool

Cette propriété indique si du texte a été sélectionné

La méthode hasSelectedText() renvoie true si tout ou partie du texte a été sélectionné par l'utilisateur ; sinon, elle renvoie false.

Par défaut, cette propriété est définie sur « false ».

Remarque : la propriété « textInteractionFlags » définie sur l'étiquette doit inclure soit « TextSelectableByMouse », soit « TextSelectableByKeyboard ».

Fonctions d'accès :

bool hasSelectedText() const

Voir également selectedText().

indent : int

Cette propriété définit le retrait du texte de l'étiquette en pixels.

Si une étiquette affiche du texte, l’indentation s’applique au bord gauche si alignment() vaut Qt::AlignLeft, au bord droit si alignment() vaut Qt::AlignRight, au bord supérieur si alignment() vaut Qt::AlignTop, et au bord inférieur si alignment() vaut Qt::AlignBottom.

Si l’indentation est négative, ou si aucune indentation n’a été définie, le label calcule l’indentation effective comme suit : si frameWidth() est égal à 0, l’indentation effective devient 0. Si frameWidth() est supérieur à 0, l’indentation effective devient la moitié de la largeur du caractère « x » de l’ font() actuelle du widget.

Par défaut, l’indentation est de -1, ce qui signifie que l’indentation effective est calculée selon la méthode décrite ci-dessus.

Fonctions d’accès :

int indent() const
void setIndent(int)

Voir également alignment, margin, frameWidth() et font().

margin : int

Cette propriété définit la largeur de la marge.

La marge correspond à la distance entre le pixel le plus intérieur du cadre et le pixel le plus extérieur du contenu.

La marge par défaut est 0.

Fonctions d’accès :

int margin() const
void setMargin(int)

Voir également indent.

Indique si QLabel doit ouvrir automatiquement les liens à l'aide de la méthode QDesktopServices::openUrl() au lieu d'émettre le signal linkActivated().

Remarque : l'textInteractionFlags défini sur l'étiquette doit inclure soit LinksAccessibleByMouse, soit LinksAccessibleByKeyboard.

La valeur par défaut est « false ».

Fonctions d’accès :

bool openExternalLinks() const
void setOpenExternalLinks(bool open)

Voir également textInteractionFlags().

pixmap : QPixmap

Cette propriété contient la carte de pixels de l'étiquette.

La définition de la carte de pixels efface tout contenu précédent. Le raccourci « buddy », s'il existe, est désactivé.

Fonctions d'accès :

QPixmap pixmap() const
void setPixmap(const QPixmap &)

scaledContents : bool

Cette propriété détermine si l'étiquette redimensionnera son contenu pour occuper tout l'espace disponible.

Lorsqu'elle est activée et que l'étiquette affiche une image bitmap, celle-ci est redimensionnée pour occuper tout l'espace disponible.

La valeur par défaut de cette propriété est « false ».

Fonctions d'accès :

bool hasScaledContents() const
void setScaledContents(bool)

[read-only] selectedText : QString

Cette propriété contient le texte sélectionné.

S'il n'y a pas de texte sélectionné, la valeur de cette propriété est une chaîne vide.

Par défaut, cette propriété contient une chaîne vide.

Remarque : l'textInteractionFlags, définie sur l'étiquette, doit inclure soit TextSelectableByMouse, soit TextSelectableByKeyboard.

Fonctions d'accès :

QString selectedText() const

Voir également hasSelectedText().

text : QString

Cette propriété contient le texte de l'étiquette.

Si aucun texte n'a été défini, elle renvoie une chaîne vide. La définition du texte efface tout contenu précédent.

Le texte sera interprété soit comme du texte brut, soit comme du texte enrichi, selon le paramètre de format de texte ; voir setTextFormat(). Le paramètre par défaut est Qt::AutoText; c'est-à-dire que QLabel tentera de détecter automatiquement le format du texte défini. Voir Sous-ensemble HTML pris en charge pour la définition du texte enrichi.

Si un contact a été défini, la touche mnémonique du contact est mise à jour à partir du nouveau texte.

Notez que QLabel est particulièrement adapté à l’affichage de petits documents en texte enrichi, tels que les documents de petite taille dont les paramètres spécifiques (police, couleur du texte, couleur des liens) proviennent de la palette et des propriétés de police de l’étiquette. Pour les documents volumineux, utilisez plutôt QTextEdit en mode lecture seule. QTextEdit peut également afficher une barre de défilement si nécessaire.

Remarque : cette fonction active le suivi de la souris si text contient du texte enrichi.

Fonctions d’accès :

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

Voir également setTextFormat(), setBuddy() et alignment.

textFormat : Qt::TextFormat

Cette propriété définit le format du texte de l'étiquette.

Reportez-vous à l'énumération « Qt::TextFormat » pour obtenir une explication des options possibles.

Le format par défaut est Qt::AutoText.

Fonctions d'accès :

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

Voir également text().

textInteractionFlags : Qt::TextInteractionFlags

Spécifie comment l'étiquette doit interagir avec les entrées de l'utilisateur si elle affiche du texte.

Si les indicateurs contiennent « Qt::LinksAccessibleByKeyboard », la politique de focus est également définie automatiquement sur « Qt::StrongFocus ». Si « Qt::TextSelectableByKeyboard » est défini, la politique de focus est alors définie sur « Qt::ClickFocus ».

La valeur par défaut est « Qt::LinksAccessibleByMouse ».

Fonctions d’accès :

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

wordWrap : bool

Cette propriété définit la politique de retour à la ligne du libellé.

Si cette propriété est définie sur « true », le texte de l'étiquette est renvoyé à la ligne si nécessaire aux césures ; sinon, il n'est pas renvoyé à la ligne.

Par défaut, le retour à la ligne automatique est désactivé.

Fonctions d'accès :

bool wordWrap() const
void setWordWrap(bool on)

Voir également text.

Documentation des fonctions membres

[explicit] QLabel::QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

Crée une étiquette vide.

Les arguments ` parent ` et ` f` (indicateur de widget) sont transmis au constructeur ` QFrame `.

Voir également setAlignment(), setFrameStyle() et setIndent().

[explicit] QLabel::QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

Crée une étiquette affichant le texte « text ».

Les arguments « parent » et « widget flag f » sont transmis au constructeur « QFrame ».

Voir également setText(), setAlignment(), setFrameStyle() et setIndent().

[virtual noexcept] QLabel::~QLabel()

Supprime l'étiquette.

QWidget *QLabel::buddy() const

Renvoie le « buddy » de cette étiquette, ou `nullptr` si aucun « buddy » n'est actuellement défini.

Voir également setBuddy().

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

Réimplémente : QFrame::changeEvent(QEvent *ev).

[slot] void QLabel::clear()

Efface le contenu de n'importe quelle étiquette.

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

Réimplémente : QWidget::contextMenuEvent(QContextMenuEvent *event).

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

Réimplémente : QFrame::event(QEvent *e).

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

Réimplémente : QWidget::focusInEvent(QFocusEvent *event).

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

Réimplémente : QWidget::focusNextPrevChild(bool next).

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

Réimplémente : QWidget::focusOutEvent(QFocusEvent *event).

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

Réimplémente : QWidget::heightForWidth(int w) const.

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

Réimplémente : QWidget::keyPressEvent(QKeyEvent *event).

[signal] void QLabel::linkActivated(const QString &link)

Ce signal est émis lorsque l'utilisateur clique sur un lien. L'URL à laquelle renvoie l'ancre est transmise dans ` link`.

Voir également linkHovered().

[signal] void QLabel::linkHovered(const QString &link)

Ce signal est émis lorsque l'utilisateur passe la souris sur un lien. L'URL à laquelle renvoie l'ancre est transmise dans ` link`.

Voir également linkActivated().

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

Réimplémente une fonction d'accès pour la propriété : QWidget::minimumSizeHint.

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

Réimplémente : QWidget::mouseMoveEvent(QMouseEvent *event).

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

Réimplémente : QWidget::mousePressEvent(QMouseEvent *event).

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

Réimplémente : QWidget::mouseReleaseEvent(QMouseEvent *event).

QMovie *QLabel::movie() const

Renvoie un pointeur vers l'animation de l'étiquette, ou nullptr si aucune animation n'a été définie.

Voir aussi setMovie().

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

Réimplémente : QFrame::paintEvent(QPaintEvent *).

[since 6.0] QPicture QLabel::picture() const

Renvoie l'image de l'étiquette.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi setPicture().

[since 6.1] QTextDocument::ResourceProvider QLabel::resourceProvider() const

Renvoie le fournisseur de ressources pour le texte enrichi de cette étiquette.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi ` setResourceProvider()`.

int QLabel::selectionStart() const

La fonction selectionStart() renvoie l'index du premier caractère sélectionné dans l'étiquette ou -1 si aucun texte n'est sélectionné.

Remarque : l’ textInteractionFlags, défini sur l’étiquette, doit inclure soit TextSelectableByMouse, soit TextSelectableByKeyboard.

Voir aussi selectedText().

void QLabel::setBuddy(QWidget *buddy)

Définit le widget associé à cette étiquette sur buddy.

Lorsque l'utilisateur appuie sur la touche de raccourci indiquée par cette étiquette, le focus clavier est transféré vers le widget associé à l'étiquette.

Le mécanisme de « buddy » n’est disponible que pour les QLabels contenant du texte dans lequel un caractère est précédé d’un « & » (esperluette). Ce caractère est défini comme touche de raccourci. Consultez la documentation relative à la fonction QKeySequence::mnemonic() pour plus de détails (pour afficher une véritable esperluette, utilisez « && »).

Dans une boîte de dialogue, vous pouvez créer deux widgets de saisie de données et une étiquette pour chacun d’eux, puis configurer la disposition géométrique de manière à ce que chaque étiquette se trouve juste à gauche de son widget de saisie de données (son « compagnon »), par exemple :

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)

Avec le code ci-dessus, le focus passe sur le champ « Nom » lorsque l’utilisateur appuie sur Alt+N, et sur le champ « Téléphone » lorsqu’il appuie sur Alt+P.

Pour désactiver un « buddy » précédemment défini, appelez cette fonction en passant ` buddy ` à `nullptr`.

Voir également buddy(), setText(), QShortcut et setAlignment().

[slot] void QLabel::setMovie(QMovie *movie)

Définit le contenu de l'étiquette sur « movie ». Tout contenu précédent est effacé. L'étiquette ne prend PAS possession du film.

Le raccourci « buddy », s'il existe, est désactivé.

Voir également movie() et setBuddy().

[slot] void QLabel::setNum(int num)

Définit le contenu de l'étiquette sous forme de texte brut contenant la représentation textuelle de l'entier num. Tout contenu précédent est effacé. Cette opération n'a aucun effet si la représentation sous forme de chaîne de caractères de l'entier est identique au contenu actuel de l'étiquette.

Le raccourci « buddy », s'il existe, est désactivé.

Remarque : ce slot est surchargé. Pour vous connecter à ce slot :

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        label, qOverload(&QLabel::setNum));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        label, [receiver = label](int num) { receiver->setNum(num); });
Pour plus d'exemples et d'approches, voir la section « Connexion à des slots surchargés ».

Voir également setText(), QString::setNum() et setBuddy().

[slot] void QLabel::setNum(double num)

Définit le contenu de l'étiquette sur du texte brut contenant la représentation textuelle d'un nombre de type double num. Tout contenu précédent est effacé. Ne fait rien si la représentation sous forme de chaîne de ce nombre de type double est identique au contenu actuel de l'étiquette.

Le raccourci « buddy », s'il existe, est désactivé.

Remarque : ce slot est surchargé. Pour vous connecter à ce slot :

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        label, qOverload(&QLabel::setNum));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        label, [receiver = label](double num) { receiver->setNum(num); });
Pour plus d’exemples et d’approches, voir la section « Connexion à des slots surchargés ».

Voir également setText(), QString::setNum() et setBuddy().

[slot] void QLabel::setPicture(const QPicture &picture)

Définit le contenu de l'étiquette sur « picture ». Tout contenu précédent est effacé.

Le raccourci « buddy », s'il existe, est désactivé.

Voir également picture() et setBuddy().

[since 6.1] void QLabel::setResourceProvider(const QTextDocument::ResourceProvider &provider)

Définit l'provider des ressources pour le texte enrichi de cette étiquette.

Remarque : l'étiquette ne prend pas possession de l'provider.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi ` resourceProvider()`.

void QLabel::setSelection(int start, int length)

Sélectionne le texte à partir de la position start et sur une longueur de length caractères.

Remarque : la propriété textInteractionFlags définie sur l'étiquette doit inclure soit TextSelectableByMouse, soit TextSelectableByKeyboard.

Voir également selectedText().

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

Réimplémente : ` QFrame::sizeHint()` const.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.