|  | Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |

# QMessageBox Class Reference
[QtGui module]

The QMessageBox class provides a modal dialog with a short message, an icon, and buttons laid out depending on the current style. More...

     #include <QMessageBox>

Inherits QDialog.

- List of all members, including inherited members
- Obsolete members
- Qt 3 support members

### Public Types

- enum ButtonRole { InvalidRole, AcceptRole, RejectRole, DestructiveRole, ..., ResetRole }
- enum Icon { NoIcon, Question, Information, Warning, Critical }
- enum StandardButton { Ok, Open, Save, Cancel, ..., ButtonMask }
- flags StandardButtons

### Properties

detailedText : QString icon : Icon iconPixmap : QPixmap informativeText : QString | standardButtons : StandardButtons text : QString textFormat : Qt::TextFormat

- 2 properties inherited from QDialog
- 55 properties inherited from QWidget
- 1 property inherited from QObject

### Public Functions

- QMessageBox ( QWidget * parent = 0 )
- QMessageBox ( Icon icon, const QString & title, const QString & text, StandardButtons buttons = NoButton, QWidget * parent = 0, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint )
- ~QMessageBox ()
- void addButton ( QAbstractButton * button, ButtonRole role )
- QPushButton * addButton ( const QString & text, ButtonRole role )
- QPushButton * addButton ( StandardButton button )
- QAbstractButton * button ( StandardButton which ) const
- QAbstractButton * clickedButton () const
- QPushButton * defaultButton () const
- QString detailedText () const
- QAbstractButton * escapeButton () const
- Icon icon () const
- QPixmap iconPixmap () const
- QString informativeText () const
- void removeButton ( QAbstractButton * button )
- void setDefaultButton ( QPushButton * button )
- void setDetailedText ( const QString & text )
- void setEscapeButton ( QAbstractButton * button )
- void setIcon ( Icon )
- void setIconPixmap ( const QPixmap & pixmap )
- void setInformativeText ( const QString & text )
- void setStandardButtons ( StandardButtons buttons )
- void setText ( const QString & text )
- void setTextFormat ( Qt::TextFormat format )
- void setWindowModality ( Qt::WindowModality windowModality )
- void setWindowTitle ( const QString & title )
- StandardButton standardButton ( QAbstractButton * button ) const
- StandardButtons standardButtons () const
- QString text () const
- Qt::TextFormat textFormat () const

- 5 public functions inherited from QDialog
- 195 public functions inherited from QWidget
- 29 public functions inherited from QObject
- 12 public functions inherited from QPaintDevice

### Static Public Members

- void about ( QWidget * parent, const QString & title, const QString & text )
- void aboutQt ( QWidget * parent, const QString & title = QString() )
- StandardButton critical ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton )
- StandardButton information ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton )
- StandardButton question ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton )
- StandardButton warning ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton )

- 4 static public members inherited from QWidget
- 5 static public members inherited from QObject

### Macros

- QT_REQUIRE_VERSION ( int argc, char ** argv, const char * version )

### Additional Inherited Members

- 4 public slots inherited from QDialog
- 19 public slots inherited from QWidget
- 1 public slot inherited from QObject
- 3 signals inherited from QDialog
- 1 signal inherited from QWidget
- 1 signal inherited from QObject
- 38 protected functions inherited from QWidget
- 7 protected functions inherited from QObject
- 1 protected function inherited from QPaintDevice
- 1 protected slot inherited from QWidget

## Detailed Description

The QMessageBox class provides a modal dialog with a short message, an icon, and buttons laid out depending on the current style.

Message boxes are used to provide informative messages and to ask simple questions.

QMessageBox supports four severity levels, indicated by an icon:

| Question | For message boxes that ask a question as part of normal operation. Some style guides recommend using Information for this purpose.
| Information | For message boxes that are part of normal operation.
| Warning | For message boxes that tell the user about unusual errors.
| Critical | For message boxes that tell the user about critical errors.

The easiest way to pop up a message box in Qt is to call one of the static functions QMessageBox::information(), QMessageBox::question(), QMessageBox::critical(), and QMessageBox::warning(). For example:

     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);

The order of the buttons is platform-dependent.

The text part of all message box messages can be either rich text or plain text. With certain strings that contain XML meta characters, the auto-rich text detection may fail, interpreting plain text incorrectly as rich text. In these rare cases, use Qt::convertFromPlainText() to convert your plain text string to a visually equivalent rich text string or set the text format explicitly with setTextFormat().

Note that the Microsoft Windows User Interface Guidelines recommend using the application name as the window's title.

If none of the standard message boxes is suitable, you can create a QMessageBox from scratch. You can use addButton() to add the standard buttons in StandardButton. addButton() has an additional overload, that takes a custom text and the button role as an argument. The button role is used to automatically determine the position of the button within the dialog box.

When using an instance of QMessageBox with standard buttons, you can test the return value of exec() to determine which button was clicked. For example,

     QMessageBox msgBox;
     msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
     switch (msgBox.exec()) {
     case QMessageBox::Yes:
         // yes was clicked
         break;
     case QMessageBox::No:
         // no was clicked
         break;
     default:
         // should never be reached
         break;
     }

When using an instance of QMessageBox with custom buttons, you can test the value of clickedButton() after calling exec(). For example,

     QMessageBox msgBox;
     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
     }

The text(), icon() and iconPixmap() functions provide access to the current text and pixmap of the message box. The setText(), setIcon() and setIconPixmap() let you change it. The difference between setIcon() and setIconPixmap() is that the former accepts a QMessageBox::Icon and can be used to set standard icons, whereas the latter accepts a QPixmap and can be used to set custom icons.

setButtonText() and buttonText() provide access to the buttons.

QMessageBox has no signals or slots.

The Standard Dialogs example shows how to use QMessageBox as well as other built-in Qt dialogs.

See also QDialogButtonBox, GUI Design Handbook: Message Box, Standard Dialogs Example, and Application Example.

## Member Type Documentation

### enum QMessageBox::ButtonRole

This enum describes the roles that can be used to describe buttons in the button box. Combinations of these roles are as flags used to describe different aspects of their behavior.

Constant | Value | Description
--- | --- | ---
`QMessageBox::InvalidRole` | `-1` | The button is invalid.
`QMessageBox::AcceptRole` | `0` | Clicking the button causes the dialog to be accepted (e.g. OK).
`QMessageBox::RejectRole` | `1` | Clicking the button causes the dialog to be rejected (e.g. Cancel).
`QMessageBox::DestructiveRole` | `2` | Clicking the button causes a destructive change (e.g. for Discarding Changes).
`QMessageBox::ActionRole` | `3` | Clicking the button causes changes to the elements in the dialog (e.g. reset all the values or read defaults).
`QMessageBox::HelpRole` | `4` | The button can be clicked to request help.
`QMessageBox::YesRole` | `5` | The button is a "Yes"-like button.
`QMessageBox::NoRole` | `6` | The button is a "No"-like button.
`QMessageBox::ApplyRole` | `8` | The button applies current changes.
`QMessageBox::ResetRole` | `7` | The button resets the dialog's fields to default values.

See also StandardButton.

### enum QMessageBox::Icon

This enum has the following values:

Constant | Value | Description
--- | --- | ---
`QMessageBox::NoIcon` | `0` | the message box does not have any icon.
`QMessageBox::Question` | `4` | an icon indicating that the message is asking a question.
`QMessageBox::Information` | `1` | an icon indicating that the message is nothing out of the ordinary.
`QMessageBox::Warning` | `2` | an icon indicating that the message is a warning, but can be dealt with.
`QMessageBox::Critical` | `3` | an icon indicating that the message represents a critical problem.

### enum QMessageBox::StandardButton
flags QMessageBox::StandardButtons

These enums describe flags for standard buttons. Each button has a defined ButtonRole.

Constant | Value | Description
--- | --- | ---
`QMessageBox::Ok` | `0x00000400` | An "OK" button defined with the AcceptRole.
`QMessageBox::Open` | `0x00002000` | A "Open" button defined with the AcceptRole.
`QMessageBox::Save` | `0x00000800` | A "Save" button defined with the AcceptRole.
`QMessageBox::Cancel` | `0x00400000` | A "Cancel" button defined with the RejectRole.
`QMessageBox::Close` | `0x00200000` | A "Close" button defined with the RejectRole.
`QMessageBox::Discard` | `0x00800000` | A "Discard" or "Don't Save" button, depending on the platform, defined with the DestructiveRole.
`QMessageBox::Apply` | `0x02000000` | An "Apply" button defined with the ApplyRole.
`QMessageBox::Reset` | `0x04000000` | A "Reset" button defined with the ResetRole.
`QMessageBox::RestoreDefaults` | `0x08000000` | A "Restore Defaults" button defined with the ResetRole.
`QMessageBox::Help` | `0x01000000` | A "Help" button defined with the HelpRole.
`QMessageBox::SaveAll` | `0x00001000` | A "Save All" button defined with the AcceptRole.
`QMessageBox::Yes` | `0x00004000` | A "Yes" button defined with the YesRole.
`QMessageBox::YesToAll` | `0x00008000` | A "Yes to All" button defined with the YesRole.
`QMessageBox::No` | `0x00010000` | A "No" button defined with the NoRole.
`QMessageBox::NoToAll` | `0x00020000` | A "No to All" button defined with the NoRole.
`QMessageBox::Abort` | `0x00040000` | An "Abort" button defined with the RejectRole.
`QMessageBox::Retry` | `0x00080000` | A "Retry" button defined with the AcceptRole.
`QMessageBox::Ignore` | `0x00100000` | An "Ignore" button defined with the AcceptRole.
`QMessageBox::NoButton` | `0x00000000` | An invalid button.

The following values are obsolete:

Constant | Value | Description
--- | --- | ---
`QMessageBox::YesAll` | `YesToAll` | Use YesToAll instead.
`QMessageBox::NoAll` | `NoToAll` | Use NoToAll instead.
`QMessageBox::Default` | `0x00000100` | Use the `defaultButton` argument of information(), warning(), etc. instead, or call setDefaultButton().
`QMessageBox::Escape` | `0x00000200` | Call setEscapeButton() instead.
`QMessageBox::FlagMask` | `0x00000300` |
`QMessageBox::ButtonMask` | `~FlagMask` |

This enum was introduced in Qt 4.2.

The StandardButtons type is a typedef for QFlags<StandardButton>. It stores an OR combination of StandardButton values.

See also ButtonRole and standardButtons.

## Property Documentation

### detailedText : QString

This property holds the text to be displayed in the details area.

The text will be interpreted as a plain text. The default value of this property is an empty string.

This property was introduced in Qt 4.2.

Access functions:

- QString detailedText () const
- void setDetailedText ( const QString & text )

### icon : Icon

This property holds the message box's icon.

The icon of the message box can be one of the following predefined icons:

- QMessageBox::NoIcon
- QMessageBox::Question
- QMessageBox::Information
- QMessageBox::Warning
- QMessageBox::Critical

The actual pixmap used for displaying the icon depends on the current GUI style. You can also set a custom pixmap icon using the QMessageBox::iconPixmap property. The default icon is QMessageBox::NoIcon.

Access functions:

- Icon icon () const
- void setIcon ( Icon )

See also iconPixmap.

### iconPixmap : QPixmap

This property holds the current icon.

The icon currently used by the message box. Note that it's often hard to draw one pixmap that looks appropriate in all GUI styles; you may want to supply a different pixmap for each platform.

Access functions:

- QPixmap iconPixmap () const
- void setIconPixmap ( const QPixmap & pixmap )

See also icon.

### informativeText : QString

This property holds the informative text that provides a fuller description for the message.

Infromative text can be used to expand upon the text() to give more information to the user. On the Mac, this text appears in small system font below the text(). On other platforms, it is simply appended to the existing text.

This property was introduced in Qt 4.2.

Access functions:

- QString informativeText () const
- void setInformativeText ( const QString & text )

### standardButtons : StandardButtons

This property holds collection of standard buttons in the message box.

This property controls which standard buttons are used by the message box.

This property was introduced in Qt 4.2.

Access functions:

- StandardButtons standardButtons () const
- void setStandardButtons ( StandardButtons buttons )

See also addButton().

### text : QString

This property holds the message box text to be displayed.

The text will be interpreted either as a plain text or as rich text, depending on the text format setting (QMessageBox::textFormat). The default setting is Qt::AutoText, i.e. the message box will try to auto-detect the format of the text.

The default value of this property is an empty string.

Access functions:

- QString text () const
- void setText ( const QString & text )

See also textFormat.

### textFormat : Qt::TextFormat

This property holds the format of the text displayed by the message box.

The current text format used by the message box. See the Qt::TextFormat enum for an explanation of the possible options.

The default format is Qt::AutoText.

Access functions:

- Qt::TextFormat textFormat () const
- void setTextFormat ( Qt::TextFormat format )

See also setText().

## Member Function Documentation

### QMessageBox::QMessageBox ( QWidget * parent = 0 )

Constructs a message box with no text and no buttons.

If parent is 0, the message box becomes an application-global modal dialog box. If parent is a widget, the message box becomes modal relative to parent.

The parent argument is passed to the QDialog constructor.

### QMessageBox::QMessageBox ( Icon icon, const QString & title, const QString & text, StandardButtons buttons = NoButton, QWidget * parent = 0, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint )

Constructs a message box with the given icon, title, text, and standard buttons. (Buttons can also be added at any time using addButton().)

If parent is 0, the message box becomes an application-global modal dialog box. If parent is a widget, the message box becomes modal relative to parent.

The parent and f arguments are passed to the QDialog constructor.

See also setWindowTitle(), setText(), setIcon(), and setStandardButtons().

### QMessageBox::~QMessageBox ()

Destroys the message box.

### void QMessageBox::about ( QWidget * parent, const QString & title, const QString & text ) `[static]`

Displays a simple about box with title title and text text. The about box's parent is parent.

about() looks for a suitable icon in four locations:

1. It prefers parent->icon() if that exists.
2. If not, it tries the top-level widget containing parent.
3. If that fails, it tries the active window.
4. As a last resort it uses the Information icon.

The about box has a single button labelled "OK".

See also QWidget::windowIcon() and QApplication::activeWindow().

### void QMessageBox::aboutQt ( QWidget * parent, const QString & title = QString() ) `[static]`

Displays a simple message box about Qt, with the given title and centered over parent (if parent is not 0). The message includes the version number of Qt being used by the application.

This is useful for inclusion in the Help menu of an application. See the examples/menu/menu.cpp example.

QApplication provides this functionality as a slot.

See also QApplication::aboutQt().

### void QMessageBox::addButton ( QAbstractButton * button, ButtonRole role )

Adds the given button to the message box with the specified role.

This function was introduced in Qt 4.2.

See also removeButton(), button(), and setStandardButtons().

### QPushButton * QMessageBox::addButton ( const QString & text, ButtonRole role )

This is an overloaded member function, provided for convenience.

Creates a button with the given text, adds it to the message box for the specified role, and returns it.

This function was introduced in Qt 4.2.

### QPushButton * QMessageBox::addButton ( StandardButton button )

This is an overloaded member function, provided for convenience.

Adds a standard button to the message box if it is valid to do so, and returns the push button.

This function was introduced in Qt 4.2.

See also setStandardButtons().

### QAbstractButton * QMessageBox::button ( StandardButton which ) const

Returns a pointer corresponding to the standard button which, or 0 if the standard button doesn't exist in this message box.

This function was introduced in Qt 4.2.

See also standardButtons and standardButton().

### QAbstractButton * QMessageBox::clickedButton () const

Returns the button that was clicked by the user, or 0 if the user hit the Escape key and no escape button was set.

If exec() hasn't been called yet, returns 0.

Example:

     QMessageBox messageBox(this);
     QAbstractButton *disconnectButton =
           messageBox.addButton(tr("Disconnect"), QMessageBox::ActionRole);
     ...
     messageBox.exec();
     if (messageBox.clickedButton() == disconnectButton) {
         ...
     }

This function was introduced in Qt 4.2.

See also standardButton() and button().

### StandardButton QMessageBox::critical ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton ) `[static]`

Opens a critical message box with the title title and the text text. The standard buttons buttons is added to the message box. defaultButton specifies the button be used as the defaultButton. If the defaultButton is set to QMessageBox::NoButton, QMessageBox picks a suitable default automatically.

Returns the identity of the standard button that was activated. If escape was pressed, returns QMessageBox::Cancel.

If parent is 0, the message box becomes an application-global modal dialog box. If parent is a widget, the message box becomes modal relative to parent.

This function was introduced in Qt 4.2.

See also question(), warning(), and information().

### QPushButton * QMessageBox::defaultButton () const

Returns the button that should be the message box's default button. Returns 0 if no default button was set.

This function was introduced in Qt 4.2.

See also setDefaultButton(), addButton(), and QPushButton::setDefault().

### QAbstractButton * QMessageBox::escapeButton () const

Returns the button that is activated when escape is presed. Returns 0 if no escape button was set.

This function was introduced in Qt 4.2.

See also setEscapeButton() and addButton().

### StandardButton QMessageBox::information ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton ) `[static]`

Opens an information message box with the title title and the text text. The standard buttons buttons is added to the message box. defaultButton specifies the button be used as the defaultButton. If the defaultButton is set to QMessageBox::NoButton, QMessageBox picks a suitable default automatically.

Returns the identity of the standard button that was activated. If escape was pressed, returns QMessageBox::Cancel.

If parent is 0, the message box becomes an application-global modal dialog box. If parent is a widget, the message box becomes modal relative to parent.

This function was introduced in Qt 4.2.

See also question(), warning(), and critical().

### StandardButton QMessageBox::question ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton ) `[static]`

Opens a question message box with the title title and the text text. The standard buttons buttons is added to the message box. defaultButton specifies the button be used as the defaultButton. If the defaultButton is set to QMessageBox::NoButton, QMessageBox picks a suitable default automatically.

Returns the identity of the standard button that was activated. If escape was pressed, returns QMessageBox::Cancel.

If parent is 0, the message box becomes an application-global modal dialog box. If parent is a widget, the message box becomes modal relative to parent.

This function was introduced in Qt 4.2.

See also information(), warning(), and critical().

### void QMessageBox::removeButton ( QAbstractButton * button )

Removes button from the button box without deleting it.

This function was introduced in Qt 4.2.

See also addButton() and setStandardButtons().

### void QMessageBox::setDefaultButton ( QPushButton * button )

Sets the message box's default button to button.

This function was introduced in Qt 4.2.

See also defaultButton(), addButton(), and QPushButton::setDefault().

### void QMessageBox::setEscapeButton ( QAbstractButton * button )

Sets the button that gets activated when the Escape key is pressed to button.

This function was introduced in Qt 4.2.

See also escapeButton(), addButton(), and clickedButton().

### void QMessageBox::setWindowModality ( Qt::WindowModality windowModality )

This function shadows QWidget::setWindowModality().

Sets the modality of the message box to windowModality.

On Mac OS X, if the modality is set to Qt::WindowModal and the message box has a parent, then the message box will be a Qt::Sheet, otherwise the message box will be a standard dialog.

This function was introduced in Qt 4.2.

### void QMessageBox::setWindowTitle ( const QString & title )

This function shadows QWidget::setWindowTitle().

Sets the title of the message box to title. On Mac OS X, the window title is ignored (as required by the Mac OS X Guidelines).

This function was introduced in Qt 4.2.

### StandardButton QMessageBox::standardButton ( QAbstractButton * button ) const

Returns the standard button enum value corresponding to the given button, or NoButton if the given button isn't a standard button.

This function was introduced in Qt 4.2.

See also button() and standardButtons().

### StandardButton QMessageBox::warning ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton ) `[static]`

Opens a warning message box with the title title and the text text. The standard buttons buttons is added to the message box. defaultButton specifies the button be used as the defaultButton. If the defaultButton is set to QMessageBox::NoButton, QMessageBox picks a suitable default automatically.

Returns the identity of the standard button that was activated. If escape was pressed, returns QMessageBox::Cancel.

If parent is 0, the message box becomes an application-global modal dialog box. If parent is a widget, the message box becomes modal relative to parent.

This function was introduced in Qt 4.2.

See also question(), information(), and critical().

## Macro Documentation

### QT_REQUIRE_VERSION ( int argc, char ** argv, const char * version )

This macro can be used to ensure that the application is run against a recent enough version of Qt. This is especially useful if your application depends on a specific bug fix introduced in a bug-fix release (e.g., 4.0.2).

The argc and argv parameters are the `main()` function's `argc` and `argv` parameters. The version parameter is a string literal that specifies which version of Qt the application requires (e.g., "4.0.2").

Example:

     #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();
     }

## Member Function Documentation

### QMessageBox::QMessageBox ( const QString & title, const QString & text, Icon icon, int button0, int button1, int button2, QWidget * parent, const char * name, bool modal, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint )

Constructs a message box with the given parent, name, and window flags, f. The window title is specified by title, and the message box displays message text and an icon specified by text and icon.

The buttons that the user can access to respond to the message are defined by button0, button1, and button2.

### QMessageBox::QMessageBox ( QWidget * parent, const char * name )

Constructs a message box with the given parent and name.

### int QMessageBox::message ( const QString & title, const QString & text, const QString & buttonText = QString(), QWidget * parent = 0, const char * name = 0 ) `[static]`

Opens a modal message box with the given title and showing the given text. The message box has a single button which has the given buttonText (or tr("OK")). The message box is centred over its parent and is called name.

Use information(), warning(), question(), or critical() instead.

For example, if you have code like

     QMessageBox::message(tr("My App"), tr("All occurrences replaced."),
                          tr("Close"), this);

you can rewrite it as

     QMessageBox::information(this, tr("My App"),
                              tr("All occurrences replaced."),
                              QMessageBox::Close);

### bool QMessageBox::query ( const QString & caption, const QString & text, const QString & yesButtonText = QString(), const QString & noButtonText = QString(), QWidget * parent = 0, const char * name = 0 ) `[static]`

Queries the user using a modal message box with up to two buttons. The message box has the given caption (although some window managers don't show it), and shows the given text. The left button has the yesButtonText (or tr("OK")), and the right button has the noButtonText (or isn't shown). The message box is centred over its parent and is called name.

Use information(), question(), warning(), or critical() instead.

### QPixmap QMessageBox::standardIcon ( Icon icon, Qt::GUIStyle style ) `[static]`

Returns the pixmap used for a standard icon. This allows the pixmaps to be used in more complex message boxes. icon specifies the required icon, e.g. QMessageBox::Information, QMessageBox::Warning or QMessageBox::Critical.

style is unused.