QPushButton Class
Le widget QPushButton fournit un bouton de commande. Plus d'informations...
| En-tête : | #include <QPushButton> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérite : | QAbstractButton |
| Hérité par : |
Propriétés
- autoDefault : bool
- default : bool
- flat : bool
Fonctions publiques
| QPushButton(QWidget *parent = nullptr) | |
| QPushButton(const QString &text, QWidget *parent = nullptr) | |
| QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr) | |
| virtual | ~QPushButton() |
| bool | autoDefault() const |
| bool | isDefault() const |
| bool | isFlat() const |
| QMenu * | menu() const |
| void | setAutoDefault(bool) |
| void | setDefault(bool) |
| void | setFlat(bool) |
| void | setMenu(QMenu *menu) |
Fonctions publiques réimplémentées
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
Emplacements publics
| void | showMenu() |
Fonctions protégées
| virtual void | initStyleOption(QStyleOptionButton *option) const |
Fonctions protégées réimplémentées
| virtual bool | event(QEvent *e) override |
| virtual void | focusInEvent(QFocusEvent *e) override |
| virtual void | focusOutEvent(QFocusEvent *e) override |
| virtual bool | hitButton(const QPoint &pos) const override |
| virtual void | keyPressEvent(QKeyEvent *e) override |
| virtual void | mouseMoveEvent(QMouseEvent *e) override |
| virtual void | paintEvent(QPaintEvent *) override |
Description détaillée

Le bouton-poussoir, ou bouton de commande, est peut-être le widget le plus couramment utilisé dans une interface utilisateur graphique. Il suffit d'appuyer (cliquer) sur un bouton pour ordonner à l'ordinateur d'effectuer une action ou de répondre à une question. Les boutons typiques sont OK, Appliquer, Annuler, Fermer, Oui, Non et Aide.
Un bouton de commande est rectangulaire et affiche généralement un texte décrivant son action. Une touche de raccourci peut être spécifiée en faisant précéder le caractère préféré d'une esperluette dans le texte. Par exemple, dans cet exemple, le raccourci est Alt :
QPushButton *button = new QPushButton("&Download", this);
Dans cet exemple, le raccourci est Alt+D. Pour plus de détails, consultez la documentation de QShortcut (pour afficher une esperluette, utilisez "&&").
Les boutons poussoirs affichent une étiquette textuelle et, éventuellement, une petite icône. Ces éléments peuvent être définis à l'aide des constructeurs et modifiés ultérieurement à l'aide de setText() et setIcon(). Si le bouton est désactivé, l'apparence du texte et de l'icône sera manipulée en fonction du style de l'interface graphique pour que le bouton ait l'air "désactivé".
Un bouton poussoir émet le signal clicked() lorsqu'il est activé par la souris, la barre d'espacement ou un raccourci clavier. Il faut se connecter à ce signal pour effectuer l'action du bouton. Les boutons poussoirs émettent également des signaux moins courants, par exemple pressed() et released().
connect(dispenseButton, &QPushButton::clicked, this, &IceCreamMaker::dispense);
Les boutons de commande dans les boîtes de dialogue sont par défaut des boutons automatiques, c'est-à-dire qu'ils deviennent automatiquement le bouton poussoir par défaut lorsqu'ils reçoivent le focus de l'entrée clavier. Un bouton par défaut est un bouton poussoir qui est activé lorsque l'utilisateur appuie sur la touche Entrée ou Retour dans une boîte de dialogue. Vous pouvez le modifier à l'aide de setAutoDefault(). Notez que les boutons par défaut réservent un peu d'espace supplémentaire qui est nécessaire pour dessiner un indicateur de bouton par défaut. Si vous ne voulez pas de cet espace autour de vos boutons, appelez setAutoDefault(false).
Le widget bouton étant si central, il s'est développé et a connu de nombreuses variations au cours de la dernière décennie. Le guide de style de Microsoft indique aujourd'hui une dizaine d'états différents pour les boutons poussoirs de Windows et le texte laisse entendre qu'il y en a des dizaines d'autres lorsque toutes les combinaisons de caractéristiques sont prises en considération.
Les modes ou états les plus importants sont les suivants
- Disponible ou non (grisé, désactivé).
- Bouton-poussoir standard, bouton-poussoir à bascule ou bouton de menu.
- Activé ou désactivé (uniquement pour les boutons-poussoirs à bascule).
- Par défaut ou normal. Le bouton par défaut d'une boîte de dialogue peut généralement être "cliqué" à l'aide de la touche Entrée ou Retour.
- Répétition automatique ou non.
- Appuyé ou non.
En règle générale, utilisez un bouton poussoir lorsque l'application ou la fenêtre de dialogue exécute une action lorsque l'utilisateur clique dessus (comme Appliquer, Annuler, Fermer et Aide) et lorsque le widget est censé avoir une forme large et rectangulaire avec une étiquette de texte. Les petits boutons, généralement carrés, qui modifient l'état de la fenêtre plutôt que d'effectuer une action (tels que les boutons situés dans le coin supérieur droit du site QFileDialog) ne sont pas des boutons de commande, mais des boutons d'outil. Qt fournit une classe spéciale (QToolButton) pour ces boutons.
Si vous avez besoin d'un comportement de basculement (voir setCheckable()) ou d'un bouton qui répète automatiquement le signal d'activation lorsqu'il est enfoncé, comme les flèches d'une barre de défilement (voir setAutoRepeat()), un bouton de commande n'est probablement pas ce qu'il vous faut. En cas de doute, utilisez un bouton d'outil.
Remarque : sous macOS, lorsque la largeur d'un bouton-poussoir est inférieure à 50 ou que sa hauteur est inférieure à 30, les coins du bouton passent de ronds à carrés. Utilisez la fonction setMinimumSize() pour éviter ce phénomène.
Le bouton de menu est une variante du bouton de commande. Ceux-ci ne fournissent pas une seule commande, mais plusieurs, puisque lorsqu'on clique dessus, un menu d'options s'affiche. Utilisez la méthode setMenu() pour associer un menu contextuel à un bouton de commande.
D'autres classes de boutons sont les boutons d'option (voir QRadioButton) et les cases à cocher (voir QCheckBox).
Dans Qt GUI, la classe de base QAbstractButton fournit la plupart des modes et autres API, et QPushButton fournit la logique de l'interface graphique. Voir QAbstractButton pour plus d'informations sur l'API.
Voir également QToolButton, QRadioButton, et QCheckBox.
Documentation sur les propriétés
autoDefault : bool
Cette propriété indique si le bouton-poussoir est un bouton par défaut automatique
Si cette propriété vaut true, le bouton poussoir est un bouton par défaut.
Dans certains styles d'interface graphique, un bouton par défaut est dessiné avec un cadre supplémentaire autour de lui, jusqu'à 3 pixels ou plus. Qt garde automatiquement cet espace libre autour des boutons par défaut, c'est-à-dire que les boutons par défaut peuvent avoir un indice de taille légèrement plus grand.
La valeur par défaut de cette propriété est true (vrai) pour les boutons dont le parent est QDialog; sinon, elle est false (faux).
Voir la propriété default pour plus de détails sur l'interaction entre default et auto-default.
Fonctions d'accès :
| bool | autoDefault() const |
| void | setAutoDefault(bool) |
default : bool
Cette propriété indique si le bouton poussoir est le bouton par défaut
Les boutons par défaut et autodefault déterminent ce qui se passe lorsque l'utilisateur appuie sur la touche Entrée dans une boîte de dialogue.
Un bouton dont cette propriété vaut true (c'est-à-dire le bouton par défaut de la boîte de dialogue) sera automatiquement enfoncé lorsque l'utilisateur appuiera sur Enter, à une exception près : si un bouton autoDefault est au centre de l'attention, c'est le bouton autoDefault qui sera enfoncé. Lorsque la boîte de dialogue comporte des boutons autoDefault mais pas de bouton par défaut, l'appui sur la touche Entrée permet d'appuyer soit sur le bouton autoDefault qui a le focus, soit, si aucun bouton n'a le focus, sur le bouton autoDefault suivant dans la chaîne de focus.
Dans une boîte de dialogue, un seul bouton-poussoir à la fois peut être le bouton par défaut. Ce bouton est alors affiché avec un cadre supplémentaire (en fonction du style de l'interface graphique).
Le comportement du bouton par défaut n'est fourni que dans les boîtes de dialogue. Les boutons peuvent toujours être cliqués à partir du clavier en appuyant sur la barre d'espacement lorsque le bouton est au premier plan.
Si la propriété default est définie sur false pour le bouton par défaut actuel alors que la boîte de dialogue est visible, une nouvelle valeur par défaut sera automatiquement attribuée la prochaine fois qu'un bouton poussoir de la boîte de dialogue sera mis en évidence.
La valeur par défaut de cette propriété est false.
Fonctions d'accès :
| bool | isDefault() const |
| void | setDefault(bool) |
flat : bool
Cette propriété indique si la bordure du bouton est relevée
La valeur par défaut de cette propriété est false. Si cette propriété est définie, la plupart des styles ne peindront pas l'arrière-plan du bouton à moins que celui-ci ne soit enfoncé. setAutoFillBackground() peut être utilisé pour s'assurer que l'arrière-plan est rempli à l'aide de la brosse QPalette::Button.
Fonctions d'accès :
| bool | isFlat() const |
| void | setFlat(bool) |
Documentation des fonctions membres
[explicit] QPushButton::QPushButton(QWidget *parent = nullptr)
Construit un bouton poussoir sans texte et un parent.
[explicit] QPushButton::QPushButton(const QString &text, QWidget *parent = nullptr)
Construit un bouton poussoir avec le parent parent et le texte text.
QPushButton::QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr)
Construit un bouton poussoir avec un icon et un text, et un parent.
Notez que vous pouvez également passer un objet QPixmap comme icône (grâce à la conversion de type implicite fournie par C++).
[virtual noexcept] QPushButton::~QPushButton()
Détruit le bouton-poussoir.
[override virtual protected] bool QPushButton::event(QEvent *e)
Réimplémente : QAbstractButton::event(QEvent *e).
[override virtual protected] void QPushButton::focusInEvent(QFocusEvent *e)
Réimplémente : QAbstractButton::focusInEvent(QFocusEvent *e).
[override virtual protected] void QPushButton::focusOutEvent(QFocusEvent *e)
Réimplémente : QAbstractButton::focusOutEvent(QFocusEvent *e).
[override virtual protected] bool QPushButton::hitButton(const QPoint &pos) const
Réimplémente : QAbstractButton::hitButton(const QPoint &pos) const.
[virtual protected] void QPushButton::initStyleOption(QStyleOptionButton *option) const
Initialiser option avec les valeurs de QPushButton. Cette méthode est utile pour les sous-classes qui ont besoin d'un QStyleOptionButton, mais qui ne veulent pas remplir toutes les informations elles-mêmes.
Voir aussi QStyleOption::initFrom().
[override virtual protected] void QPushButton::keyPressEvent(QKeyEvent *e)
Réimplémente : QAbstractButton::keyPressEvent(QKeyEvent *e).
QMenu *QPushButton::menu() const
Renvoie le menu contextuel associé au bouton ou nullptr si aucun menu contextuel n'a été défini.
Voir aussi setMenu().
[override virtual] QSize QPushButton::minimumSizeHint() const
Réimplémente une fonction d'accès à la propriété : QWidget::minimumSizeHint.
[override virtual protected] void QPushButton::mouseMoveEvent(QMouseEvent *e)
Réimplémente : QAbstractButton::mouseMoveEvent(QMouseEvent *e).
[override virtual protected] void QPushButton::paintEvent(QPaintEvent *)
Réimplémente : QAbstractButton::paintEvent(QPaintEvent *e).
void QPushButton::setMenu(QMenu *menu)
Associe le menu contextuel menu à ce bouton. Cela transforme le bouton en bouton de menu, ce qui, dans certains styles, produit un petit triangle à droite du texte du bouton.
La propriété du menu n' est pas transférée au bouton de commande.

Un bouton poussoir avec des menus déroulants dans le style de widget Fusion.
Voir également menu().
[slot] void QPushButton::showMenu()
Affiche (fait apparaître) le menu contextuel associé. Si ce menu n'existe pas, cette fonction ne fait rien. Cette fonction ne revient pas tant que le menu contextuel n'a pas été fermé par l'utilisateur.
[override virtual] QSize QPushButton::sizeHint() const
Réimplémente une fonction d'accès à la propriété : QWidget::sizeHint.
© 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.