QMessageBox Class
La classe QMessageBox fournit une boîte de dialogue modale permettant d'informer l'utilisateur ou de lui poser une question et de recevoir une réponse. Plus d'informations...
| En-tête : | #include <QMessageBox> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Héritages : | QDialog |
- Liste de tous les membres, y compris les membres hérités
- les membres dépréciés
- QMessageBox fait partie de Standard Dialogs.
Types publics
| enum | ButtonRole { InvalidRole, AcceptRole, RejectRole, DestructiveRole, ActionRole, …, ResetRole } |
| enum | Icon { NoIcon, Question, Information, Warning, Critical } |
(since 6.6) enum class | Option { DontUseNativeDialog } |
| flags | Options |
| enum | StandardButton { Ok, Open, Save, Cancel, Close, …, ButtonMask } |
| flags | StandardButtons |
Propriétés
|
|
Fonctions publiques
| QMessageBox(QWidget *parent = nullptr) | |
| QMessageBox(QMessageBox::Icon icon, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = NoButton, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint) | |
| virtual | ~QMessageBox() |
| void | addButton(QAbstractButton *button, QMessageBox::ButtonRole role) |
| QPushButton * | addButton(QMessageBox::StandardButton button) |
| QPushButton * | addButton(const QString &text, QMessageBox::ButtonRole role) |
| QAbstractButton * | button(QMessageBox::StandardButton which) const |
| QMessageBox::ButtonRole | buttonRole(QAbstractButton *button) const |
| QList<QAbstractButton *> | buttons() const |
| QCheckBox * | checkBox() const |
| QAbstractButton * | clickedButton() const |
| QPushButton * | defaultButton() const |
| QString | detailedText() const |
| QAbstractButton * | escapeButton() const |
| QMessageBox::Icon | icon() const |
| QPixmap | iconPixmap() const |
| QString | informativeText() const |
| void | open(QObject *receiver, const char *member) |
| QMessageBox::Options | options() const |
| void | removeButton(QAbstractButton *button) |
| void | setCheckBox(QCheckBox *cb) |
| void | setDefaultButton(QMessageBox::StandardButton button) |
| void | setDefaultButton(QPushButton *button) |
| void | setDetailedText(const QString &text) |
| void | setEscapeButton(QAbstractButton *button) |
| void | setEscapeButton(QMessageBox::StandardButton button) |
| void | setIcon(QMessageBox::Icon) |
| void | setIconPixmap(const QPixmap &pixmap) |
| void | setInformativeText(const QString &text) |
(since 6.6) void | setOption(QMessageBox::Option option, bool on = true) |
| void | setOptions(QMessageBox::Options options) |
| void | setStandardButtons(QMessageBox::StandardButtons buttons) |
| void | setText(const QString &text) |
| void | setTextFormat(Qt::TextFormat format) |
| void | setTextInteractionFlags(Qt::TextInteractionFlags flags) |
| void | setWindowModality(Qt::WindowModality windowModality) |
| void | setWindowTitle(const QString &title) |
| QMessageBox::StandardButton | standardButton(QAbstractButton *button) const |
| QMessageBox::StandardButtons | standardButtons() const |
(since 6.6) bool | testOption(QMessageBox::Option option) const |
| QString | text() const |
| Qt::TextFormat | textFormat() const |
| Qt::TextInteractionFlags | textInteractionFlags() const |
Emplacements publics
| virtual int | exec() override |
Signaux
| void | buttonClicked(QAbstractButton *button) |
Membres publics statiques
| void | about(QWidget *parent, const QString &title, const QString &text) |
| void | aboutQt(QWidget *parent, const QString &title = QString()) |
| QMessageBox::StandardButton | critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton) |
| QMessageBox::StandardButton | information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton) |
| QMessageBox::StandardButton | question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = StandardButtons(Yes | No), QMessageBox::StandardButton defaultButton = NoButton) |
| QMessageBox::StandardButton | warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton) |
Fonctions protégées réimplémentées
| virtual void | changeEvent(QEvent *ev) override |
| virtual void | closeEvent(QCloseEvent *e) override |
| virtual bool | event(QEvent *e) override |
| virtual void | keyPressEvent(QKeyEvent *e) override |
| virtual void | resizeEvent(QResizeEvent *event) override |
| virtual void | showEvent(QShowEvent *e) override |
Macros
| QT_REQUIRE_VERSION(int argc, char **argv, const char *version) |
Description détaillée
Une boîte de message affiche un message principal text pour alerter l'utilisateur d'une situation, un message informative text pour expliquer davantage la situation et un message facultatif detailed text pour fournir encore plus d'informations si l'utilisateur le demande.
Une boîte de message peut également afficher un icon et un standard buttons pour accepter une réponse de l'utilisateur.
Bien que le paramètre parent soit facultatif, le fait de le spécifier donne un indice au gestionnaire de fenêtres, qui peut alors se charger du positionnement et maintenir un ordre d'empilement correct de la fenêtre de dialogue.
Deux API sont fournies pour l'utilisation de QMessageBox : l'API basée sur les propriétés et les fonctions statiques. L'appel à l'une des fonctions statiques est l'approche la plus simple, mais elle est moins souple que l'utilisation de l'API basée sur les propriétés, et le résultat est moins informatif. Il est recommandé d'utiliser l'API basée sur les propriétés.
L'API basée sur les propriétés
Pour utiliser l'API basée sur les propriétés, construisez une instance de QMessageBox, définissez les propriétés souhaitées et appelez exec() pour afficher le message. La configuration la plus simple consiste à définir uniquement la propriété message text.
QMessageBox msgBox(this); msgBox.setText("The document has been modified."); msgBox.exec();
L'utilisateur doit cliquer sur le bouton OK pour fermer la boîte de message. Le reste de l'interface graphique est bloqué jusqu'à ce que la boîte de message soit supprimée.

Une meilleure approche que de simplement alerter l'utilisateur d'un événement consiste à lui demander ce qu'il doit faire à ce sujet.
Attribuez à la propriété standard buttons l'ensemble de boutons que vous souhaitez voir figurer parmi les réponses de l'utilisateur. Les boutons sont spécifiés en combinant les valeurs de StandardButtons à l'aide de l'opérateur bitwise OR. L'ordre d'affichage des boutons dépend de la plate-forme. Par exemple, sous Windows, Save est affiché à gauche de Cancel, alors que sous macOS, l'ordre est inversé. Marquez l'un de vos boutons standard comme étant votre default button.
La propriété informative text peut être utilisée pour ajouter un contexte supplémentaire afin d'aider l'utilisateur à choisir l'action appropriée.
QMessageBox msgBox(this); msgBox.setText("The document has been modified."); msgBox.setInformativeText("Do you want to save your changes?"); msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel); msgBox.setDefaultButton(QMessageBox::Save); int ret = msgBox.exec();

Le slot exec() renvoie la valeur StandardButtons du bouton sur lequel on a cliqué.
switch (ret) { case QMessageBox::Save: // Save was clicked break; case QMessageBox::Discard: // Don't Save was clicked break; case QMessageBox::Cancel: // Cancel was clicked break; default: // should never be reached break; }
Pour donner à l'utilisateur plus d'informations afin de l'aider à choisir l'action appropriée, définissez la propriété detailed text. En fonction de la plate-forme, il se peut que l'utilisateur doive cliquer sur un bouton Show Details... pour que la propriété detailed text soit affichée.

En cliquant sur le bouton Show Details..., le texte détaillé s'affiche.

Texte riche et propriété Text Format
La propriété detailed text est toujours interprétée comme du texte brut. Les propriétés main text et informative text peuvent être du texte brut ou du texte enrichi. Ces chaînes sont interprétées en fonction du paramètre de la propriété text format. Le paramètre par défaut est auto-text.
Notez que pour certaines chaînes de texte brut contenant des métacaractères XML, le texte automatique rich text detection test peut échouer et votre chaîne de texte brut peut alors être interprétée de manière incorrecte comme du texte enrichi. Dans ces rares cas, utilisez Qt::convertFromPlainText() pour convertir votre chaîne de texte brut en une chaîne de texte enrichi visuellement équivalente, ou définissez explicitement la propriété text format avec setTextFormat().
Niveaux de gravité et propriétés Icon et Pixmap
QMessageBox prend en charge quatre niveaux de gravité prédéfinis, ou types de message, qui ne diffèrent réellement que par l'icône prédéfinie qu'ils affichent. Spécifiez l'un des quatre types de message prédéfinis en définissant la propriété icon sur l'une des icônes predefined icons. Les règles suivantes sont des lignes directrices :
| Question | Pour poser une question pendant les opérations normales. |
| Information | Pour communiquer des informations sur les opérations normales. |
| Warning | Pour signaler des erreurs non critiques. |
| Critical | Pour signaler des erreurs critiques. |
Predefined icons ne sont pas définies par QMessageBox, mais fournies par le style. La valeur par défaut est No Icon. Les boîtes de message sont par ailleurs identiques dans tous les cas. Lorsque vous utilisez une icône standard, utilisez celle qui est recommandée dans le tableau ou celle qui est recommandée par les directives de style de votre plateforme. Si aucune des icônes standard ne convient à votre boîte de message, vous pouvez utiliser une icône personnalisée en définissant la propriété icon pixmap au lieu de la propriété icon.
En résumé, pour définir une icône, utilisez soit setIcon() pour l'une des icônes standard, soit setIconPixmap() pour une icône personnalisée.
L'API des fonctions statiques
La création de boîtes de message à l'aide de l'API de fonctions statiques, bien que pratique, est moins souple que l'API basée sur les propriétés, car les signatures de fonctions statiques manquent de paramètres pour définir les propriétés informative text et detailed text. Une solution consiste à utiliser le paramètre title comme texte principal de la boîte de message et le paramètre text comme texte informatif de la boîte de message. Comme cette solution présente l'inconvénient évident de rendre la boîte de message moins lisible, les lignes directrices de la plate-forme ne la recommandent pas. Les directives relatives à l'interface utilisateur de Microsoft Windows recommandent d'utiliser le paramètre application name comme window's title, ce qui signifie que si vous avez un texte informatif en plus de votre texte principal, vous devez le concaténer au paramètre text.
Notez que les signatures des fonctions statiques ont changé en ce qui concerne leurs paramètres de bouton, qui sont maintenant utilisés pour définir les paramètres standard buttons et default button.
Des fonctions statiques sont disponibles pour créer les boîtes de message information(), question(), warning() et critical().
int ret = QMessageBox::warning(this, tr("My Application"), tr("The document has been modified.\n" "Do you want to save your changes?"), QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Save);
L'exemple des boîtes de dialogue standard montre comment utiliser QMessageBox et les autres boîtes de dialogue intégrées de Qt.
Utilisation avancée
Si les standard buttons ne sont pas assez flexibles pour votre boîte de message, vous pouvez utiliser la surcharge addButton() qui prend un texte et un ButtonRole pour ajouter des boutons personnalisés. La valeur ButtonRole est utilisée par QMessageBox pour déterminer l'ordre des boutons à l'écran (qui varie en fonction de la plate-forme). Vous pouvez tester la valeur de clickedButton() après avoir appelé exec(). Par exemple, vous pouvez tester la valeur de () après avoir appelé (),
QMessageBox msgBox(this); QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole); QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort); msgBox.exec(); if (msgBox.clickedButton() == connectButton) { // connect } else if (msgBox.clickedButton() == abortButton) { // abort }
Touches par défaut et d'échappement
Le bouton par défaut (c'est-à-dire le bouton activé lorsque l'on appuie sur Enter ) peut être spécifié à l'aide de setDefaultButton(). Si aucun bouton par défaut n'est spécifié, QMessageBox tente d'en trouver un en se basant sur button roles des boutons utilisés dans la boîte de message.
Le bouton d'échappement (le bouton activé lorsque Esc est enfoncé) peut être spécifié à l'aide de setEscapeButton(). Si aucun bouton d'échappement n'est spécifié, QMessageBox tente d'en trouver un en utilisant ces règles :
- S'il n'y a qu'un seul bouton, c'est le bouton activé lorsque l'on appuie sur Esc.
- S'il y a un bouton Cancel, c'est le bouton activé lorsque l'on appuie sur Esc.
- S'il y a exactement un bouton ayant soit the Reject role, soit the No role, c'est le bouton activé lorsque l'on appuie sur Esc.
Lorsqu'il est impossible de déterminer un bouton d'échappement à l'aide de ces règles, l'appui sur Esc n'a aucun effet.
Voir également QDialogButtonBox et l'exemple de dialogue standard.
Documentation sur les types de membres
enum QMessageBox::ButtonRole
Cette énumération décrit les rôles qui peuvent être utilisés pour décrire les boutons dans la boîte à boutons. Les combinaisons de ces rôles sont autant de drapeaux utilisés pour décrire les différents aspects de leur comportement.
| Constante | Valeur | Description du bouton |
|---|---|---|
QMessageBox::InvalidRole | -1 | Le bouton n'est pas valide. |
QMessageBox::AcceptRole | 0 | Un clic sur le bouton entraîne l'acceptation de la boîte de dialogue (par exemple, OK). |
QMessageBox::RejectRole | 1 | Un clic sur le bouton entraîne le rejet de la boîte de dialogue (par exemple, Annuler). |
QMessageBox::DestructiveRole | 2 | Un clic sur le bouton entraîne une modification destructive (par exemple, pour rejeter des modifications) et ferme la boîte de dialogue. |
QMessageBox::ActionRole | 3 | Un clic sur le bouton entraîne des modifications des éléments de la boîte de dialogue. |
QMessageBox::HelpRole | 4 | Il est possible de cliquer sur le bouton pour demander de l'aide. |
QMessageBox::YesRole | 5 | Le bouton est un bouton de type "Oui". |
QMessageBox::NoRole | 6 | Le bouton ressemble à un bouton "Non". |
QMessageBox::ApplyRole | 8 | Le bouton applique les modifications en cours. |
QMessageBox::ResetRole | 7 | Le bouton rétablit les valeurs par défaut des champs de la boîte de dialogue. |
Voir aussi StandardButton.
enum QMessageBox::Icon
Cette énumération a les valeurs suivantes :
| Constante | Valeur | Description |
|---|---|---|
QMessageBox::NoIcon | 0 | la boîte de message n'a pas d'icône. |
QMessageBox::Question | 4 | une icône indiquant que le message pose une question. |
QMessageBox::Information | 1 | une icône indiquant que le message ne sort pas de l'ordinaire. |
QMessageBox::Warning | 2 | une icône indiquant que le message est un avertissement, mais qu'il peut être traité. |
QMessageBox::Critical | 3 | une icône indiquant que le message représente un problème critique. |
[since 6.6] enum class QMessageBox::Option
flags QMessageBox::Options
| Constante | Valeur | Description |
|---|---|---|
QMessageBox::Option::DontUseNativeDialog | 0x00000001 | Ne pas utiliser la boîte de dialogue de message native. |
Cette énumération a été introduite dans Qt 6.6.
Le type Options est un typedef pour QFlags<Option>. Il stocke une combinaison OU de valeurs d'options.
enum QMessageBox::StandardButton
flags QMessageBox::StandardButtons
Ces enums décrivent les drapeaux des boutons standard. Chaque bouton a une valeur définie ButtonRole.
| Constante | Valeur | Description |
|---|---|---|
QMessageBox::Ok | 0x00000400 | Un bouton "OK" défini à l'aide de l'enum AcceptRole. |
QMessageBox::Open | 0x00002000 | Un bouton "Ouvrir" défini à l'aide de la constante AcceptRole. |
QMessageBox::Save | 0x00000800 | Un bouton "Enregistrer" défini à l'aide de l'adresse AcceptRole. |
QMessageBox::Cancel | 0x00400000 | Un bouton "Annuler" défini à l'aide de l'adresse RejectRole. |
QMessageBox::Close | 0x00200000 | Un bouton "Fermer" défini à l'aide de l'adresse RejectRole. |
QMessageBox::Discard | 0x00800000 | Un bouton "Discard" ou "Don't Save", en fonction de la plateforme, défini à l'aide de l'adresse DestructiveRole. |
QMessageBox::Apply | 0x02000000 | Un bouton "Appliquer" défini à l'aide de l'adresse ApplyRole. |
QMessageBox::Reset | 0x04000000 | Un bouton "Reset" défini à l'aide de l'adresse ResetRole. |
QMessageBox::RestoreDefaults | 0x08000000 | Un bouton "Restore Defaults" défini à l'aide de l'adresse ResetRole. |
QMessageBox::Help | 0x01000000 | Un bouton "Help" défini à l'aide de l'adresse HelpRole. |
QMessageBox::SaveAll | 0x00001000 | Un bouton "Save All" défini à l'aide de l'adresse AcceptRole. |
QMessageBox::Yes | 0x00004000 | Un bouton "Oui" défini à l'aide de l'adresse YesRole. |
QMessageBox::YesToAll | 0x00008000 | Un bouton "Oui à tout" défini à l'aide de l'adresse YesRole. |
QMessageBox::No | 0x00010000 | Un bouton "Non" défini à l'aide de l'adresse NoRole. |
QMessageBox::NoToAll | 0x00020000 | Un bouton "Non à tous" défini à l'aide de l'adresse NoRole. |
QMessageBox::Abort | 0x00040000 | Un bouton "Abort" défini à l'aide de l'adresse RejectRole. |
QMessageBox::Retry | 0x00080000 | Un bouton "Retry" défini à l'aide de l'adresse AcceptRole. |
QMessageBox::Ignore | 0x00100000 | Un bouton "Ignorer" défini à l'aide de l'adresse AcceptRole. |
QMessageBox::NoButton | 0x00000000 | Un bouton invalide. |
Les valeurs suivantes sont obsolètes :
| Constante | Valeur | Description |
|---|---|---|
QMessageBox::YesAll | YesToAll | Utiliser YesToAll à la place. |
QMessageBox::NoAll | NoToAll | Utilisez NoToAll à la place. |
QMessageBox::Default | 0x00000100 | Utiliser l'argument defaultButton de information(), warning(), etc. à la place, ou appeler setDefaultButton(). |
QMessageBox::Escape | 0x00000200 | Appelez plutôt setEscapeButton(). |
QMessageBox::FlagMask | 0x00000300 | |
QMessageBox::ButtonMask | ~FlagMask |
Le type StandardButtons est un typedef pour QFlags<StandardButton>. Il stocke une combinaison OR de valeurs StandardButton.
Voir également ButtonRole et standardButtons.
Documentation sur les propriétés
detailedText : QString
Cette propriété contient le texte à afficher dans la zone de détails.
Le texte sera interprété comme du texte brut.
Par défaut, cette propriété contient une chaîne vide.
Fonctions d'accès :
| QString | detailedText() const |
| void | setDetailedText(const QString &text) |
Voir aussi QMessageBox::text et QMessageBox::informativeText.
icon : Icon
Cette propriété contient l'icône de la boîte aux lettres
L'icône de la boîte de message peut être spécifiée avec l'une des valeurs :
- QMessageBox::NoIcon
- QMessageBox::Question
- QMessageBox::Information
- QMessageBox::Warning
- QMessageBox::Critical
La valeur par défaut est QMessageBox::NoIcon.
La pixmap utilisée pour afficher l'icône actuelle dépend de la valeur courante GUI style. Vous pouvez également définir une pixmap personnalisée pour l'icône en définissant la propriété icon pixmap.
Fonctions d'accès :
| QMessageBox::Icon | icon() const |
| void | setIcon(QMessageBox::Icon) |
Voir aussi iconPixmap.
iconPixmap : QPixmap
Cette propriété contient l'icône actuelle
L'icône actuellement utilisée par la boîte de message. Notez qu'il est souvent difficile de dessiner une pixmap qui convienne à tous les styles d'interface graphique ; vous voudrez peut-être fournir une pixmap différente pour chaque plate-forme.
Par défaut, cette propriété n'est pas définie.
Fonctions d'accès :
| QPixmap | iconPixmap() const |
| void | setIconPixmap(const QPixmap &pixmap) |
Voir aussi icon.
informativeText : QString
Cette propriété contient le texte informatif qui fournit une description plus complète du message
Le texte informatif peut être utilisé pour développer le message text() et donner plus d'informations à l'utilisateur, par exemple en décrivant les conséquences de la situation ou en suggérant d'autres solutions.
Le texte sera interprété soit comme un texte simple, soit comme un texte enrichi, en fonction de la configuration du format de texte (QMessageBox::textFormat). Le paramètre par défaut est Qt::AutoText, c'est-à-dire que la boîte de message essaiera de détecter automatiquement le format du texte.
Par défaut, cette propriété contient une chaîne vide.
Fonctions d'accès :
| QString | informativeText() const |
| void | setInformativeText(const QString &text) |
Voir également textFormat, QMessageBox::text, et QMessageBox::detailedText.
[since 6.6] options : Options
Options qui affectent l'aspect et la convivialité de la boîte de dialogue.
Par défaut, ces options sont désactivées.
L'option Option::DontUseNativeDialog doit être définie avant de modifier les propriétés de la boîte de dialogue ou de l'afficher.
La définition d'options alors que la boîte de dialogue est visible ne garantit pas un effet immédiat sur la boîte de dialogue.
Le fait de définir des options après avoir modifié d'autres propriétés peut faire en sorte que ces valeurs n'aient aucun effet.
Cette propriété a été introduite dans Qt 6.6.
Fonctions d'accès :
| QMessageBox::Options | options() const |
| void | setOptions(QMessageBox::Options options) |
Voir aussi setOption() et testOption().
standardButtons : StandardButtons
collection de boutons standard dans la boîte à messages
Cette propriété contrôle les boutons standard utilisés par la boîte de message.
Par défaut, cette propriété ne contient aucun bouton standard.
Fonctions d'accès :
| QMessageBox::StandardButtons | standardButtons() const |
| void | setStandardButtons(QMessageBox::StandardButtons buttons) |
Voir aussi addButton().
text : QString
Cette propriété contient le texte de la boîte de message à afficher.
Il doit s'agir d'une phrase brève décrivant la situation, idéalement formulée sous la forme d'une déclaration neutre ou d'une question d'appel à l'action.
Le texte sera interprété soit comme un texte simple, soit comme un texte enrichi, en fonction du paramètre de format de texte (QMessageBox::textFormat). Le paramètre par défaut est Qt::AutoText, c'est-à-dire que la boîte de message essaiera de détecter automatiquement le format du texte.
La valeur par défaut de cette propriété est une chaîne vide.
Fonctions d'accès :
| QString | text() const |
| void | setText(const QString &text) |
Voir également textFormat, QMessageBox::informativeText, et QMessageBox::detailedText.
textFormat : Qt::TextFormat
Cette propriété définit le format du texte affiché par la boîte de message
Le format de texte actuellement utilisé par la boîte de message. 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 format) |
Voir également setText().
textInteractionFlags : Qt::TextInteractionFlags
Spécifie comment l'étiquette de la boîte de message doit interagir avec la saisie de l'utilisateur.
La valeur par défaut dépend du style.
Fonctions d'accès :
| Qt::TextInteractionFlags | textInteractionFlags() const |
| void | setTextInteractionFlags(Qt::TextInteractionFlags flags) |
Voir également QStyle::SH_MessageBox_TextInteractionFlags.
Documentation sur les fonctions membres
[explicit] QMessageBox::QMessageBox(QWidget *parent = nullptr)
Construit une boîte de message application modal sans texte ni bouton. parent est transmis au constructeur QDialog.
La modalité de la fenêtre peut être remplacée par setWindowModality() avant d'appeler show().
Remarque : l'utilisation de open() ou exec() pour afficher la boîte de message affecte la modalité de la fenêtre. Veuillez consulter la documentation détaillée de chaque fonction pour plus d'informations.
Sous macOS, si vous voulez que votre boîte de message apparaisse comme une Qt::Sheet de sa parent, définissez la window modality de la boîte de message sur Qt::WindowModal ou utilisez open(). Sinon, la boîte de message sera une boîte de dialogue standard.
Voir également setWindowTitle(), setText(), setIcon(), setStandardButtons() et setWindowModality().
QMessageBox::QMessageBox(QMessageBox::Icon icon, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = NoButton, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint)
Construit une boîte de message application modal avec les éléments donnés icon, title, text, et l'élément standard buttons. Des boutons standard ou personnalisés peuvent être ajoutés à tout moment à l'aide de addButton(). Les arguments parent et f sont transmis au constructeur QDialog.
La modalité de la fenêtre peut être remplacée par setWindowModality() avant d'appeler show().
Remarque : l'utilisation de open() ou exec() pour afficher la boîte de message affecte la modalité de la fenêtre. Veuillez consulter la documentation détaillée de chaque fonction pour plus d'informations.
Sous macOS, si parent n'est pas nullptr et que vous souhaitez que votre boîte de message apparaisse en tant que Qt::Sheet de ce parent, définissez window modality de la boîte de message sur Qt::WindowModal (par défaut). Sinon, la boîte de message sera une boîte de dialogue standard.
Voir aussi setWindowTitle(), setText(), setIcon(), setStandardButtons() et setWindowModality().
[virtual noexcept] QMessageBox::~QMessageBox()
Détruit la boîte de message.
[static] void QMessageBox::about(QWidget *parent, const QString &title, const QString &text)
Affiche une boîte "à propos" simple avec le titre title et le texte text. Le parent de la boîte "about" est parent.
about() recherche une icône appropriée à quatre endroits :
- Il préfère parent->icon() s'il existe.
- Si ce n'est pas le cas, il essaie le widget de premier niveau contenant parent.
- En cas d'échec, il essaie le widget de niveau supérieur contenant . active window.
- En dernier recours, il utilise l'icône Information.
La boîte "À propos" comporte un seul bouton intitulé "OK".
Sur macOS, la boîte "À propos" s'affiche sous la forme d'une fenêtre sans modèle ; sur les autres plates-formes, il s'agit actuellement d'une application modale.
Voir également QWidget::windowIcon() et QApplication::activeWindow().
[static] void QMessageBox::aboutQt(QWidget *parent, const QString &title = QString())
Affiche une boîte de message simple sur Qt, avec l'adresse title et centrée sur parent (si parent n'est pas nullptr). Le message inclut le numéro de version de Qt utilisé par l'application.
Il est utile de l'inclure dans le menu Help d'une application, comme le montre l'exemple des menus.
QApplication fournit cette fonctionnalité sous forme de slot.
Sur macOS, la boîte aboutQt est affichée comme une fenêtre sans modèle ; sur d'autres plateformes, elle est actuellement modale.
Voir aussi QApplication::aboutQt().
void QMessageBox::addButton(QAbstractButton *button, QMessageBox::ButtonRole role)
Ajoute le message button donné à la boîte aux lettres avec le message role spécifié.
Voir aussi removeButton(), button() et setStandardButtons().
QPushButton *QMessageBox::addButton(QMessageBox::StandardButton button)
Ajoute un button standard à la boîte de message s'il est valide, et renvoie le bouton poussoir.
Il s'agit d'une fonction surchargée.
Voir aussi setStandardButtons().
QPushButton *QMessageBox::addButton(const QString &text, QMessageBox::ButtonRole role)
Crée un bouton avec le nom text, l'ajoute à la boîte de message pour le nom role et le renvoie.
Il s'agit d'une fonction surchargée.
QAbstractButton *QMessageBox::button(QMessageBox::StandardButton which) const
Renvoie un pointeur correspondant au bouton standard which, ou nullptr si le bouton standard n'existe pas dans cette boîte de message.
Remarque : la modification des propriétés du bouton retourné peut ne pas être reflétée dans les implémentations natives de la boîte de dialogue. Pour personnaliser les boutons de la boîte de dialogue, ajoutez un bouton custom button ou button title à la place, ou définissez l'option Option::DontUseNativeDialog.
Voir aussi standardButtons et standardButton().
[signal] void QMessageBox::buttonClicked(QAbstractButton *button)
Ce signal est émis chaque fois qu'un bouton est cliqué à l'intérieur du site QMessageBox. Le bouton qui a été cliqué est renvoyé dans le site button.
QMessageBox::ButtonRole QMessageBox::buttonRole(QAbstractButton *button) const
Renvoie le rôle du bouton pour l'adresse button spécifiée. Cette fonction renvoie InvalidRole si button est nullptr ou n'a pas été ajouté à la boîte aux lettres.
Voir aussi buttons() et addButton().
QList<QAbstractButton *> QMessageBox::buttons() const
Renvoie une liste de tous les boutons qui ont été ajoutés à la boîte de message.
Voir aussi buttonRole(), addButton() et removeButton().
[override virtual protected] void QMessageBox::changeEvent(QEvent *ev)
Réimplémente : QWidget::changeEvent(QEvent *event).
QCheckBox *QMessageBox::checkBox() const
Renvoie la case à cocher affichée dans la boîte de dialogue. C'est nullptr si aucune case à cocher n'est définie.
Voir également setCheckBox().
QAbstractButton *QMessageBox::clickedButton() const
Renvoie le bouton sur lequel l'utilisateur a cliqué, ou nullptr si l'utilisateur a appuyé sur la touche Esc et qu'aucun escape button n'a été défini.
Si exec() n'a pas encore été appelé, il renvoie nullptr.
Exemple :
QMessageBox messageBox(this); QAbstractButton *disconnectButton = messageBox.addButton(tr("Disconnect"), QMessageBox::ActionRole); //... messageBox.exec(); if (messageBox.clickedButton() == disconnectButton) { //... }
Voir aussi standardButton() et button().
[override virtual protected] void QMessageBox::closeEvent(QCloseEvent *e)
Réimplémente : QDialog::closeEvent(QCloseEvent *e).
[static] QMessageBox::StandardButton QMessageBox::critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)
Ouvre une boîte de message critique avec les adresses title et text devant le widget parent spécifié.
Le standard buttons est ajouté à la boîte de message. defaultButton spécifie le bouton utilisé lorsque Enter est pressé. defaultButton doit faire référence à un bouton qui a été donné dans buttons. Si defaultButton est QMessageBox::NoButton, QMessageBox choisit automatiquement une valeur par défaut appropriée.
Renvoie l'identité du bouton standard qui a été cliqué. Si Esc a été pressé à la place, escape button est renvoyé.
La boîte de message est une boîte de dialogue application modal.
Attention : Ne supprimez pas parent pendant l'exécution de la boîte de dialogue. Si vous souhaitez le faire, vous devez créer la boîte de dialogue vous-même en utilisant l'un des constructeurs QMessageBox.
Voir aussi question(), warning() et information().
QPushButton *QMessageBox::defaultButton() const
Renvoie le bouton qui doit être le bouton de la boîte de message default button. Renvoie nullptr si aucun bouton par défaut n'a été défini.
Voir aussi setDefaultButton(), addButton() et QPushButton::setDefault().
QAbstractButton *QMessageBox::escapeButton() const
Renvoie le bouton qui est activé lorsque l'on appuie sur escape.
Par défaut, QMessageBox tente de détecter automatiquement un bouton d'échappement comme suit :
- S'il n'y a qu'un seul bouton, il devient le bouton d'échappement.
- S'il y a un bouton Cancel, il devient le bouton d'échappement.
- Sur macOS uniquement, s'il y a exactement un bouton avec le rôle QMessageBox::RejectRole, il devient le bouton d'échappement.
Lorsqu'un bouton d'échappement n'a pas pu être détecté automatiquement, le fait d'appuyer sur Esc n'a aucun effet.
Voir également setEscapeButton() et addButton().
[override virtual protected] bool QMessageBox::event(QEvent *e)
Réimplémente : QWidget::event(QEvent *event).
[override virtual slot] int QMessageBox::exec()
Réimplémente : QDialog::exec().
Affiche la boîte de message sous forme de modal dialog, en la bloquant jusqu'à ce que l'utilisateur la ferme.
Lors de l'utilisation d'un QMessageBox avec des boutons standard, cette fonction renvoie une valeur StandardButton indiquant le bouton standard sur lequel l'utilisateur a cliqué. Lors de l'utilisation de QMessageBox avec des boutons personnalisés, cette fonction renvoie une valeur opaque ; utilisez clickedButton() pour déterminer le bouton sur lequel l'utilisateur a cliqué.
Remarque : la fonction result() renvoie également la valeur StandardButton au lieu de QDialog::DialogCode.
Les utilisateurs ne peuvent interagir avec aucune autre fenêtre de la même application tant qu'ils n'ont pas fermé la boîte de dialogue, soit en cliquant sur un bouton, soit en utilisant un mécanisme fourni par le système de fenêtres.
Voir aussi show() et result().
[static] QMessageBox::StandardButton QMessageBox::information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)
Ouvre une boîte de message d'information avec les adresses title et text devant le widget parent spécifié.
Le standard buttons est ajouté à la boîte de message. defaultButton spécifie le bouton utilisé lorsque Enter est pressé. defaultButton doit faire référence à un bouton qui a été donné dans buttons. Si defaultButton est QMessageBox::NoButton, QMessageBox choisit automatiquement une valeur par défaut appropriée.
Renvoie l'identité du bouton standard qui a été cliqué. Si Esc a été pressé à la place, escape button est renvoyé.
La boîte de message est une boîte de dialogue application modal.
Attention : Ne supprimez pas parent pendant l'exécution de la boîte de dialogue. Si vous souhaitez le faire, vous devez créer la boîte de dialogue vous-même en utilisant l'un des constructeurs QMessageBox.
Voir aussi question(), warning() et critical().
[override virtual protected] void QMessageBox::keyPressEvent(QKeyEvent *e)
Réimplémente : QDialog::keyPressEvent(QKeyEvent *e).
void QMessageBox::open(QObject *receiver, const char *member)
Ouvre la boîte de dialogue et connecte son signal finished() ou buttonClicked() à l'emplacement spécifié par receiver et member. Si l'emplacement dans member a un pointeur pour son premier paramètre, la connexion est à buttonClicked(), sinon la connexion est à finished().
Le signal sera déconnecté de l'emplacement lorsque la boîte de dialogue sera fermée.
[static] QMessageBox::StandardButton QMessageBox::question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = StandardButtons(Yes | No), QMessageBox::StandardButton defaultButton = NoButton)
Ouvre une boîte de questions avec les adresses title et text devant le widget parent spécifié.
Le standard buttons est ajouté à la boîte de message. defaultButton spécifie le bouton utilisé lorsque Enter est pressé. defaultButton doit faire référence à un bouton qui a été donné dans buttons. Si defaultButton est QMessageBox::NoButton, QMessageBox choisit automatiquement une valeur par défaut appropriée.
Renvoie l'identité du bouton standard qui a été cliqué. Si Esc a été pressé à la place, escape button est renvoyé.
La boîte de message est une boîte de dialogue application modal.
Attention : Ne supprimez pas parent pendant l'exécution de la boîte de dialogue. Si vous souhaitez le faire, vous devez créer la boîte de dialogue vous-même en utilisant l'un des constructeurs QMessageBox.
Voir aussi information(), warning() et critical().
void QMessageBox::removeButton(QAbstractButton *button)
Retire button de la boîte à boutons sans la supprimer.
Voir aussi addButton() et setStandardButtons().
[override virtual protected] void QMessageBox::resizeEvent(QResizeEvent *event)
Réimplémente : QDialog::resizeEvent(QResizeEvent *).
void QMessageBox::setCheckBox(QCheckBox *cb)
Définit la case à cocher cb dans la boîte de dialogue du message. La boîte de message est propriétaire de la case à cocher. L'argument cb peut être nullptr pour supprimer une case à cocher existante de la boîte de message.
Voir également checkBox().
void QMessageBox::setDefaultButton(QMessageBox::StandardButton button)
Fixe la valeur de la boîte de message default button à button.
Voir aussi defaultButton(), addButton() et QPushButton::setDefault().
void QMessageBox::setDefaultButton(QPushButton *button)
Fixe la valeur de la boîte de message default button à button.
Voir aussi addButton() et QPushButton::setDefault().
void QMessageBox::setEscapeButton(QAbstractButton *button)
Définit le bouton qui est activé lorsque la touche Escape est pressée à button.
Voir aussi escapeButton(), addButton() et clickedButton().
void QMessageBox::setEscapeButton(QMessageBox::StandardButton button)
Définit les boutons qui sont activés lorsque la touche Escape est pressée à button.
Voir aussi addButton() et clickedButton().
[since 6.6] void QMessageBox::setOption(QMessageBox::Option option, bool on = true)
Active l'option option si on est vrai ; sinon, efface l'option option.
Les options (en particulier l'option Option::DontUseNativeDialog ) doivent être définies avant d'afficher la boîte de dialogue.
La définition d'options pendant que la boîte de dialogue est visible n'est pas garantie d'avoir un effet immédiat sur la boîte de dialogue.
Le fait de définir des options après avoir modifié d'autres propriétés peut faire en sorte que ces valeurs n'aient aucun effet.
Cette fonction a été introduite dans Qt 6.6.
Voir aussi options et testOption().
void QMessageBox::setWindowModality(Qt::WindowModality windowModality)
Cette fonction fait de l'ombre à QWidget::setWindowModality().
Définit la modalité de la boîte de message à windowModality.
Sous macOS, si la modalité est définie sur Qt::WindowModal et que la boîte de message a un parent, la boîte de message sera une Qt::Sheet, sinon la boîte de message sera une boîte de dialogue standard.
void QMessageBox::setWindowTitle(const QString &title)
Cette fonction fait de l'ombre à QWidget::setWindowTitle().
Définit le titre de la boîte de message à title. Sous macOS, le titre de la fenêtre est ignoré (conformément aux directives macOS).
[override virtual protected] void QMessageBox::showEvent(QShowEvent *e)
Réimplémente : QDialog::showEvent(QShowEvent *event).
QMessageBox::StandardButton QMessageBox::standardButton(QAbstractButton *button) const
Renvoie la valeur de l'énumération des boutons standard correspondant à l'adresse button, ou NoButton si l'adresse button n'est pas un bouton standard.
Voir aussi button() et standardButtons().
[since 6.6] bool QMessageBox::testOption(QMessageBox::Option option) const
Renvoie true si le site option est activé ; sinon, renvoie false.
Cette fonction a été introduite dans Qt 6.6.
Voir aussi options et setOption().
[static] QMessageBox::StandardButton QMessageBox::warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)
Ouvre une boîte de message d'avertissement avec les adresses title et text devant le widget parent spécifié.
Le standard buttons est ajouté à la boîte de message. defaultButton spécifie le bouton utilisé lorsque Enter est pressé. defaultButton doit faire référence à un bouton qui a été donné dans buttons. Si defaultButton est QMessageBox::NoButton, QMessageBox choisit automatiquement une valeur par défaut appropriée.
Renvoie l'identité du bouton standard qui a été cliqué. Si Esc a été pressé à la place, escape button est renvoyé.
La boîte de message est une boîte de dialogue application modal.
Attention : Ne supprimez pas parent pendant l'exécution de la boîte de dialogue. Si vous souhaitez le faire, vous devez créer la boîte de dialogue vous-même en utilisant l'un des constructeurs QMessageBox.
Voir aussi question(), information() et critical().
Documentation sur les macros
QT_REQUIRE_VERSION(int argc, char **argv, const char *version)
Cette macro peut être utilisée pour s'assurer que l'application est exécutée avec une version suffisamment récente de Qt. Ceci est particulièrement utile si votre application dépend d'une correction de bogue spécifique introduite dans une version de correction de bogue (par exemple, 6.1.2).
Les paramètres argc et argv sont les paramètres argc et argv de la fonction main(). Le paramètre version est une chaîne de caractères littérale qui spécifie la version de Qt XML requise par l'application (par exemple, "6.1.2").
Exemple :
#include <QApplication> #include <QMessageBox> int main(int argc, char *argv[]) { QT_REQUIRE_VERSION(argc, argv, "4.0.2") QApplication app(argc, argv); //... return app.exec(); }
© 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.



