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

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 :
| Contenu | Paramètre |
|---|---|
| Texte brut | Transmettre une adresse QString à setText(). |
| Texte enrichi | Transmettre un QString contenant du texte enrichi à setText(). |
| Une pixmap | Transmettre QPixmap à setPixmap(). |
| Un film | Transmettre un QMovie à setMovie(). |
| Un nombre | Passez un int ou un double à setNum(), qui convertit le nombre en texte brut. |
| Rien | La 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.
openExternalLinks : bool
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); }); 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); }); 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.