Sur cette page

QStatusBar Class

La classe QStatusBar fournit une barre horizontale permettant de présenter des informations d'état. Plus d'informations...

En-tête : #include <QStatusBar>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Héritages : 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 les textes de l'info-bulle ou les 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 caché. Utilisé pour les 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 règle générale, la fonctionnalité de barre d'état est demandée pour un objet QMainWindow. QMainWindow fournit une fenêtre d'application principale, avec une barre de menu, des barres d'outils, des widgets d'ancrage 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().

La fonction showMessage() permet d'afficher un message temporaire:

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

Pour supprimer un message temporaire, utilisez l'emplacement clearMessage() ou fixez une limite de temps en appelant la fonction 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 sont affichés en créant un petit widget (QLabel, QProgressBar ou même QToolButton) et en l'ajoutant à la barre d'état à l'aide de la fonction addWidget() ou addPermanentWidget(). La fonction removeWidget() permet de supprimer ces messages de la barre d'état.

statusBar()->addWidget(new MyReadWriteIndication);

Par défaut, QStatusBar fournit une adresse QSizeGrip dans le coin inférieur droit. Vous pouvez le désactiver à l'aide de la fonction setSizeGripEnabled(). Utilisez la fonction isSizeGripEnabled() pour déterminer l'état actuel de la poignée de taille.

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'adresse QSizeGrip dans le coin inférieur droit de la barre d'état est activée

La poignée de taille 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)

Construit une barre d'état avec une poignée de taille et l'adresse parent.

Voir aussi setSizeGripEnabled().

[virtual noexcept] QStatusBar::~QStatusBar()

Détruit cette barre d'état et libère les ressources allouées et les widgets enfants.

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

Ajoute l'objet widget donné de façon permanente à cette barre d'état, en répartissant le widget s'il n'est pas déjà un enfant de cet objet QStatusBar. Le paramètre stretch est utilisé pour calculer une taille appropriée pour l'objet widget au fur et à mesure que la barre d'état grandit et rétrécit. Le facteur d'étirement par défaut est 0, c'est-à-dire qu'il donne au widget un minimum d'espace.

Permanente 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'objet widget à cette barre d'état, en répartissant le widget s'il n'est pas déjà un enfant de cet objet QStatusBar. Le paramètre stretch est utilisé pour calculer une taille appropriée pour l'objet widget au fur et à mesure que la barre d'état grandit et rétrécit. Le facteur d'étirement par défaut est 0, c'est-à-dire qu'il donne au widget un minimum d'espace.

Le widget est situé à 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 aussi currentMessage(), showMessage() et removeWidget().

QString QStatusBar::currentMessage() const

Renvoie le message temporaire actuellement affiché, ou une chaîne vide si ce message n'existe pas.

Voir aussi showMessage().

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

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

[protected] void QStatusBar::hideOrShow()

Assure 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 l'objet widget à l'endroit index de façon permanente dans cette barre d'état, en répartissant le widget s'il n'est pas déjà un enfant de cet objet QStatusBar. Si index est hors de portée, le widget est ajouté (dans ce cas, c'est l'index actuel du widget qui est renvoyé).

Le paramètre stretch est utilisé pour calculer une taille appropriée pour l'objet widget au fur et à mesure que la barre d'état grandit et rétrécit. Le facteur d'étirement par défaut est 0, c'est-à-dire qu'il donne au widget un minimum d'espace.

Permanente 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 aussi addPermanentWidget(), removeWidget() et addWidget().

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

Insère l'objet widget à l'endroit index dans cette barre d'état, en répartissant le widget s'il n'est pas déjà un enfant de cet objet QStatusBar. Si index est hors de portée, le widget est ajouté (dans ce cas, c'est l'index actuel du widget qui est renvoyé).

Le paramètre stretch est utilisé pour calculer une taille appropriée pour l'objet widget au fur et à mesure que la barre d'état grandit et rétrécit. Le facteur d'étirement par défaut est 0, c'est-à-dire qu'il donne au widget un minimum d'espace.

Le widget est situé à 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 dans le paramètre message qui est une chaîne nulle lorsque le message a été supprimé.

Voir aussi 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 à la peinture event.

[protected] void QStatusBar::reformat()

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

Des 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éarrangements nécessaires.

void QStatusBar::removeWidget(QWidget *widget)

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

Remarque : cette fonction ne supprime pas le widget, mais le cache. Pour ajouter à nouveau le widget, vous devez appeler 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 le message message pendant le nombre de milli-secondes spécifié (timeout). Si timeout vaut 0 (valeur par défaut), message reste affiché jusqu'à ce que le slot clearMessage() soit appelé ou jusqu'à ce que le slot showMessage() soit appelé à nouveau pour modifier le message.

Notez que showMessage() est appelé pour afficher des explications temporaires sur les textes des bulles d'aide, donc passer un timeout de 0 n'est pas suffisant pour afficher un 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.