Sur cette page

QLabel Class

Le widget QLabel permet d'afficher du texte ou une image. Plus d'informations...

En-tête : #include <QLabel>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Héritages : 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

Emplacements 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 est utilisé pour 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 elle peut être utilisée pour spécifier une clé mnémotechnique de mise au point pour un autre widget.

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

ContenuParamètre
Texte brutTransmettre une adresse QString à setText().
Texte enrichiTransmettre un QString contenant du texte enrichi à setText().
Une pixmapTransmettre QPixmap à setPixmap().
Un filmTransmettre un QMovie à setMovie().
Un nombrePassez un int ou un double à setNum(), qui convertit le nombre en texte brut.
RienLa même chose qu'un texte brut vide. C'est la valeur par défaut. Fixé par clear().

Attention : Lorsque vous passez un QString au constructeur ou que vous appelez setText(), assurez-vous d'assainir votre entrée, car QLabel essaie de deviner s'il affiche le texte en texte brut ou en texte enrichi, un sous-ensemble du balisage HTML 4. Vous pouvez appeler setTextFormat() explicitement, par exemple si vous vous attendez à ce que le texte soit en format simple mais que vous ne pouvez pas contrôler la source du texte (par exemple lors de l'affichage de données chargées à partir du Web).

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

Par défaut, les étiquettes affichent le texte et les images left-aligned, vertically-centered, où toutes les tabulations du texte à afficher sont automatically expanded. Toutefois, l'aspect d'un QLabel peut être ajusté et affiné de plusieurs manières.

Le positionnement du contenu dans la zone du widget QLabel peut être réglé à l'aide de setAlignment() et setIndent(). Le contenu textuel peut également être entouré de lignes le long des limites des mots grâce à setWordWrap(). Par exemple, ce code met en place un panneau en creux avec un texte de deux lignes dans le coin inférieur droit (les deux lignes étant alignées avec le côté 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 les fonctions que QLabel hérite de QFrame peuvent également être utilisées pour spécifier le cadre du widget à utiliser pour une étiquette donnée.

Un QLabel est souvent utilisé comme étiquette pour un widget interactif. Pour cette utilisation, QLabel fournit un mécanisme utile pour ajouter un mnémonique (voir QKeySequence) qui placera le focus clavier sur l'autre widget (appelé le "buddy" du QLabel). Par exemple, dans cet exemple, le focus clavier est transféré à l'autre widget :

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

Dans cet exemple, le focus clavier est transféré au compagnon de l'étiquette (le QLineEdit) lorsque l'utilisateur appuie sur Alt+P. Si le compagnon était un bouton (héritant de QAbstractButton), le déclenchement du mnémonique émulerait un clic sur un 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 aussi text.

[read-only] hasSelectedText : bool

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

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é vaut false.

Remarque : l'ensemble textInteractionFlags de l'étiquette doit inclure TextSelectableByMouse ou 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, le retrait s'applique au bord gauche si alignment() est Qt::AlignLeft, au bord droit si alignment() est Qt::AlignRight, au bord supérieur si alignment() est Qt::AlignTop, et au bord inférieur si alignment() est Qt::AlignBottom.

Si l'indentation est négative ou si aucune indentation n'a été définie, l'étiquette calcule l'indentation effective comme suit : Si frameWidth() est égal à 0, le retrait effectif devient 0. Si frameWidth() est supérieur à 0, le retrait effectif devient la moitié de la largeur du caractère "x" de l'image courante du widget font().

Par défaut, l'indentation est égale à -1, ce qui signifie qu'une indentation effective est calculée de la manière décrite ci-dessus.

Fonctions d'accès :

int indent() const
void setIndent(int)

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

margin : int

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

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

La marge par défaut est de 0.

Fonctions d'accès :

int margin() const
void setMargin(int)

Voir aussi indent.

Indique si QLabel doit automatiquement ouvrir les liens en utilisant QDesktopServices::openUrl() au lieu d'émettre le signal linkActivated().

Remarque : l'adresse textInteractionFlags définie sur l'étiquette doit inclure LinksAccessibleByMouse ou 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 pixmap de l'étiquette.

La définition de la pixmap efface tout contenu antérieur. Le raccourci copain, s'il existe, est désactivé.

Fonctions d'accès :

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

scaledContents : bool

Cette propriété indique si l'étiquette doit mettre son contenu à l'échelle pour remplir tout l'espace disponible.

Lorsque cette propriété est activée et que l'étiquette affiche une pixmap, celle-ci sera mise à l'échelle pour remplir 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'adresse textInteractionFlags définie pour l'étiquette doit inclure TextSelectableByMouse ou 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, cette propriété renvoie une chaîne vide. La définition du texte efface tout contenu antérieur.

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

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

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

Remarque : cette fonction permet le suivi de la souris si text contient du texte riche.

Fonctions d'accès :

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

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

textFormat : Qt::TextFormat

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

Voir l'énumération Qt::TextFormat pour 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 la saisie de l'utilisateur si elle affiche du texte.

Si les drapeaux contiennent Qt::LinksAccessibleByKeyboard, la politique de focalisation est également automatiquement définie sur Qt::StrongFocus. Si Qt::TextSelectableByKeyboard est défini, la politique de focalisation est 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 d'habillage du texte de l'étiquette

Si cette propriété vaut true, le texte de l'étiquette est enveloppé si nécessaire aux coupures de mots ; dans le cas contraire, il n'est pas enveloppé du tout.

Par défaut, la politique de mise en forme est désactivée.

Fonctions d'accès :

bool wordWrap() const
void setWordWrap(bool on)

Voir également text.

Documentation sur les fonctions membres

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

Construit une étiquette vide.

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

Voir aussi setAlignment(), setFrameStyle() et setIndent().

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

Construit une étiquette qui affiche le texte text.

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

Voir aussi setText(), setAlignment(), setFrameStyle() et setIndent().

[virtual noexcept] QLabel::~QLabel()

Détruit l'étiquette.

QWidget *QLabel::buddy() const

Renvoie le compagnon de ce label, ou nullptr si aucun compagnon n'est actuellement défini.

Voir aussi setBuddy().

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

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

[slot] void QLabel::clear()

Efface tout le contenu de l'é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 se réfère l'ancre est transmise dans link.

Voir aussi linkHovered().

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

Ce signal est émis lorsque l'utilisateur survole un lien. L'URL référencée par l'ancre est transmise dans link.

Voir aussi linkActivated().

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

Réimplémente une fonction d'accès à 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 sur le film de l'étiquette, ou nullptr si aucun film n'a été défini.

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 riche de cette étiquette.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi setResourceProvider().

int QLabel::selectionStart() const

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

Note : Le jeu de textInteractionFlags sur l'étiquette doit inclure TextSelectableByMouse ou TextSelectableByKeyboard.

Voir aussi selectedText().

void QLabel::setBuddy(QWidget *buddy)

Définit le compagnon de cette étiquette à buddy.

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

Le mécanisme de jumelage n'est disponible que pour les QLabels qui contiennent du texte dont un caractère est préfixé par une esperluette, "&". Ce caractère est défini comme la touche de raccourci. Voir la documentation de QKeySequence::mnemonic() pour plus de détails (pour afficher une esperluette réelle, utilisez '&&').

Dans une boîte de dialogue, vous pouvez créer deux widgets de saisie de données et une étiquette pour chacun d'entre eux, et 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 au champ Nom lorsque l'utilisateur appuie sur Alt+N, et au champ Téléphone lorsque l'utilisateur appuie sur Alt+P.

Pour annuler un copain précédemment défini, appelez cette fonction avec buddy à nullptr.

Voir aussi buddy(), setText(), QShortcut, et setAlignment().

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

Définit le contenu de l'étiquette à movie. Tout contenu antérieur est effacé. L'étiquette n'est PAS propriétaire du film.

Le raccourci copain, s'il existe, est désactivé.

Voir également movie() et setBuddy().

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

Définit le contenu de l'étiquette en texte clair contenant la représentation textuelle de l'entier num. Tout contenu précédent est effacé. Ne fait rien si la représentation sous forme de chaîne de l'entier est la même que le contenu actuel de l'étiquette.

Le raccourci copain, s'il y en a un, est désactivé.

Note : Ce slot est surchargé. Pour se 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 se connecter à des slots surchargés.

Voir aussi setText(), QString::setNum(), et setBuddy().

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

Définit le contenu de l'étiquette en texte clair contenant la représentation textuelle du double num. Tout contenu précédent est effacé. Ne fait rien si la représentation textuelle de double est la même que le contenu actuel de l'étiquette.

Le raccourci copain, s'il y en a un, est désactivé.

Note : Ce slot est surchargé. Pour se 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 se connecter à des slots surchargés.

Voir aussi setText(), QString::setNum(), et setBuddy().

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

Définit le contenu de l'étiquette à picture. Tout contenu antérieur est effacé.

Le raccourci copain, s'il existe, est désactivé.

Voir aussi picture() et setBuddy().

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

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

Note : L'étiquette n'est pas propriétaire de la ressource 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 pour les caractères length.

Remarque : l'ensemble textInteractionFlags de l'étiquette doit inclure TextSelectableByMouse ou 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.