Sur cette page

QStatusBar Class

La classe QStatusBar fournit une barre horizontale permettant d'afficher des informations d'état. En savoir plus...

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

Propriétés

Fonctions publiques

QStatusBar(QWidget *parent = nullptr)
virtual ~QStatusBar()
void addPermanentWidget(QWidget *widget, int stretch = 0)
void addWidget(QWidget *widget, int stretch = 0)
QString currentMessage() const
int insertPermanentWidget(int index, QWidget *widget, int stretch = 0)
int insertWidget(int index, QWidget *widget, int stretch = 0)
bool isSizeGripEnabled() const
void removeWidget(QWidget *widget)
void setSizeGripEnabled(bool)

Emplacements publics

void clearMessage()
void showMessage(const QString &message, int timeout = 0)

Signaux

void messageChanged(const QString &message)

Fonctions protégées

void hideOrShow()
void reformat()

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

virtual bool event(QEvent *e) override
virtual void paintEvent(QPaintEvent *event) override
virtual void resizeEvent(QResizeEvent *e) override
virtual void showEvent(QShowEvent *) override

Description détaillée

Chaque indicateur d’état appartient à l’une des trois catégories suivantes :

  • Temporaire: occupe brièvement la majeure partie de la barre d'état. Utilisé pour expliquer le contenu des infobulles ou des entrées de menu, par exemple.
  • Normal: occupe une partie de la barre d'état et peut être masqué par des messages temporaires. Utilisé pour afficher le numéro de page et de ligne dans un traitement de texte, par exemple.
  • Permanent: n'est jamais masqué. Utilisé pour des indications de mode importantes ; par exemple, certaines applications affichent un indicateur de verrouillage des majuscules dans la barre d'état.

QStatusBar vous permet d'afficher ces trois types d'indicateurs.

En général, une requête concernant la fonctionnalité de la barre d'état est effectuée en lien avec un objet ` QMainWindow `. ` QMainWindow ` fournit une fenêtre d'application principale, avec une barre de menus, des barres d'outils, des widgets ancrés et une barre d'état autour d'un grand widget central. La barre d'état peut être récupérée à l'aide de la fonction ` QMainWindow::statusBar()` et remplacée à l'aide de la fonction ` QMainWindow::setStatusBar()`.

Utilisez le slot ` showMessage()` pour afficher un message temporaire:

statusBar()->showMessage(tr("Ready"));

Pour supprimer un message temporaire, utilisez le slot clearMessage() ou définissez une durée limite lors de l'appel de showMessage(). Par exemple :

statusBar()->showMessage(tr("Ready"), 2000);

Utilisez la fonction currentMessage() pour récupérer le message temporaire actuellement affiché. La classe QStatusBar fournit également le signal messageChanged(), qui est émis chaque fois que le message d'état temporaire change.

Les messagesnormaux et permanents s’affichent en créant un petit widget (QLabel, QProgressBar ou même QToolButton), puis en l’ajoutant à la barre d’état à l’aide de la fonction addWidget() ou addPermanentWidget(). Utilisez la fonction removeWidget() pour supprimer ces messages de la barre d’état.

statusBar()->addWidget(new MyReadWriteIndication);

Par défaut, QStatusBar affiche une « QSizeGrip » dans le coin inférieur droit. Vous pouvez la désactiver à l’aide de la fonction setSizeGripEnabled(). Utilisez la fonction isSizeGripEnabled() pour déterminer l’état actuel de la poignée de redimensionnement.

Une barre d'état affichée dans le style du widget Fusion

Voir également QMainWindow et QStatusTipEvent.

Documentation sur les propriétés

sizeGripEnabled : bool

Cette propriété indique si l'QSizeGrip, située dans le coin inférieur droit de la barre d'état, est activée

La poignée de redimensionnement est activée par défaut.

Fonctions d'accès :

bool isSizeGripEnabled() const
void setSizeGripEnabled(bool)

Documentation des fonctions membres

[explicit] QStatusBar::QStatusBar(QWidget *parent = nullptr)

Crée une barre d'état dotée d'une poignée de redimensionnement et de l'parent spécifiée.

Voir aussi setSizeGripEnabled().

[virtual noexcept] QStatusBar::~QStatusBar()

Supprime cette barre d'état et libère toutes les ressources allouées ainsi que les widgets enfants.

void QStatusBar::addPermanentWidget(QWidget *widget, int stretch = 0)

Ajoute de manière permanente l'widget donné à cette barre d'état, en réaffectant le widget s'il n'est pas déjà un enfant de cet objet QStatusBar. Le paramètre stretch sert à calculer une taille adaptée pour l'widget donné lorsque la barre d'état s'agrandit ou se rétrécit. Le facteur d'étirement par défaut est 0, ce qui attribue au widget un espace minimal.

« Permanent » signifie que le widget ne peut pas être masqué par des messages temporaires. Il est situé à l’extrême droite de la barre d’état.

Voir également insertPermanentWidget(), removeWidget() et addWidget().

void QStatusBar::addWidget(QWidget *widget, int stretch = 0)

Ajoute l'widget donné à cette barre d'état, en redéfinissant la parenté du widget s'il n'est pas déjà un enfant de cet objet QStatusBar. Le paramètre stretch est utilisé pour calculer une taille adaptée à l'widget donné à mesure que la barre d'état s'agrandit ou se rétrécit. Le facteur d'étirement par défaut est 0, ce qui attribue au widget un espace minimal.

Le widget est placé à l’extrême gauche du premier widget permanent (voir addPermanentWidget()) et peut être masqué par des messages temporaires.

Voir également insertWidget(), removeWidget() et addPermanentWidget().

[slot] void QStatusBar::clearMessage()

Supprime tout message temporaire affiché.

Voir également currentMessage(), showMessage() et removeWidget().

QString QStatusBar::currentMessage() const

Renvoie le message temporaire actuellement affiché, ou une chaîne vide s'il n'y a pas de message de ce type.

Voir aussi showMessage().

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

Réimplémente : QWidget::event(QEvent *event).

[protected] void QStatusBar::hideOrShow()

Garantit que les bons widgets sont visibles.

Utilisé par les fonctions showMessage() et clearMessage().

int QStatusBar::insertPermanentWidget(int index, QWidget *widget, int stretch = 0)

Insère de manière permanente l’ widget spécifiée à l’ index indiquée dans cette barre d’état, en réaffectant le widget à ce parent s’il n’est pas déjà un enfant de cet objet QStatusBar. Si index est hors limites, le widget est ajouté à la fin (auquel cas c’est l’index réel du widget qui est renvoyé).

Le paramètre stretch est utilisé pour calculer une taille adaptée à l’ widget donné à mesure que la barre d’état s’étend ou se rétrécit. Le facteur d’étirement par défaut est 0, ce qui attribue au widget un espace minimal.

« Permanent » signifie que le widget ne peut pas être masqué par des messages temporaires. Il est situé à l'extrême droite de la barre d'état.

Voir également addPermanentWidget(), removeWidget() et addWidget().

int QStatusBar::insertWidget(int index, QWidget *widget, int stretch = 0)

Insère l'widget spécifiée à l'index indiquée dans cette barre d'état, en réaffectant le widget à cet objet QStatusBar s'il n'en est pas déjà un enfant. Si index est hors limites, le widget est ajouté à la fin (auquel cas c'est l'index réel du widget qui est renvoyé).

Le paramètre stretch est utilisé pour calculer une taille adaptée à l’ widget donné à mesure que la barre d’état s’agrandit et se rétrécit. Le facteur d’étirement par défaut est 0, ce qui attribue au widget un espace minimal.

Le widget est placé à l’extrême gauche du premier widget permanent (voir addPermanentWidget()) et peut être masqué par des messages temporaires.

Voir également addWidget(), removeWidget() et addPermanentWidget().

[signal] void QStatusBar::messageChanged(const QString &message)

Ce signal est émis chaque fois que le message d'état temporaire change. Le nouveau message temporaire est transmis via le paramètre ` message `, qui est une chaîne vide lorsque le message a été supprimé.

Voir également showMessage() et clearMessage().

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

Réimplémente : QWidget::paintEvent(QPaintEvent *event).

Affiche le message temporaire, le cas échéant, en réponse à l'event de dessin.

[protected] void QStatusBar::reformat()

Modifie l'apparence de la barre d'état pour tenir compte des changements apportés aux éléments.

Certaines sous-classes spéciales peuvent avoir besoin de cette fonction, mais la gestion de la géométrie se charge généralement des réorganisations nécessaires.

void QStatusBar::removeWidget(QWidget *widget)

Supprime l'widget spécifié de la barre d'état.

Remarque : cette fonction ne supprime pas le widget, mais le masque. Pour rajouter le widget, vous devez appeler à la fois les fonctions ` addWidget()` et ` show()`.

Voir également addWidget(), addPermanentWidget() et clearMessage().

[override virtual protected] void QStatusBar::resizeEvent(QResizeEvent *e)

Réimplémente : QWidget::resizeEvent(QResizeEvent *event).

[override virtual protected] void QStatusBar::showEvent(QShowEvent *)

Réimplémente : QWidget::showEvent(QShowEvent *event).

[slot] void QStatusBar::showMessage(const QString &message, int timeout = 0)

Masque les indications d'état normales et affiche l'message on donnée pendant le nombre de millisecondes spécifié (timeout). Si timeout est égal à 0 (valeur par défaut), l'message ion reste affichée jusqu'à ce que le slot clearMessage() soit appelé ou jusqu'à ce que le slot showMessage() soit à nouveau appelé pour modifier le message.

Notez que la méthode showMessage() est appelée pour afficher des explications temporaires des textes d’info-bulles ; par conséquent, passer une valeur de timeout égale à 0 ne suffit pas pour afficher une permanent message.

Voir également messageChanged(), currentMessage() et clearMessage().

© 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.