QMessageBox Class Reference |
Question | For asking a question during normal operations. | |
Information | For reporting information about normal operations. | |
Warning | For reporting non-critical errors. | |
Critical | For reporting critical errors. |
The default value is No Icon. The message boxes are otherwise the same for all cases. When using a standard icon, use the one recommended in the table, or use the one recommended by the style guidelines for your platform. If none of the standard icons is right for your message box, you can use a custom icon by setting the icon pixmap property instead of setting the icon property.
In summary, to set an icon, use either setIcon() for one of the standard icons, or setIconPixmap() for a custom icon.
Building message boxes with the static functions API, although convenient, is less flexible than using the property-based API, because the static function signatures lack parameters for setting the informative text and detailed text properties. One work-around for this has been to use the title parameter as the message box main text and the text parameter as the message box informative text. Because this has the obvious drawback of making a less readable message box, platform guidelines do not recommend it. The Microsoft Windows User Interface Guidelines recommend using the application name as the window's title, which means that if you have an informative text in addition to your main text, you must concatenate it to the text parameter.
Note that the static function signatures have changed with respect to their button parameters, which are now used to set the standard buttons and the default button.
Static functions are available for creating information(), question(), warning(), and critical() message boxes.
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 Standard Dialogs example shows how to use QMessageBox and the other built-in Qt dialogs.
If the standard buttons are not flexible enough for your message box, you can use the addButton() overload that takes a text and a ButtonRoleto to add custom buttons. The ButtonRole is used by QMessageBox to determine the ordering of the buttons on screen (which varies according to the platform). 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 default button (i.e., the button activated when Enter is pressed) can be specified using setDefaultButton(). If a default button is not specified, QMessageBox tries to find one based on the button roles of the buttons used in the message box.
The escape button (the button activated when Esc is pressed) can be specified using setEscapeButton(). If an escape button is not specified, QMessageBox tries to find one using these rules:
When an escape button can't be determined using these rules, pressing Esc has no effect.
See also QDialogButtonBox, GUI Design Handbook: Message Box, Standard Dialogs Example, and Application Example.
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) and closes the dialog. |
QMessageBox.ActionRole | 3 | Clicking the button causes changes to the elements within the dialog. |
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.
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. |
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.
The parent argument, if not None, causes self to be owned by Qt instead of PyQt.
Constructs a message box with no text and no buttons. parent is passed to the QDialog constructor.
If parent is 0, the message box is an application modal dialog box. If parent is a widget, the message box is window modal relative to parent.
On Mac OS X, if parent is not 0 and you want your message box to appear as a Qt.Sheet of that parent, set the message box's window modality to Qt.WindowModal (default). Otherwise, the message box will be a standard dialog.
The parent argument, if not None, causes self to be owned by Qt instead of PyQt.
Constructs a message box with the given icon, title, text, and standard buttons. Standard or custom buttons can be added at any time using addButton(). The parent and f arguments are passed to the QDialog constructor.
If parent is 0, the message box is an application modal dialog box. If parent is a widget, the message box is window modal relative to parent.
On Mac OS X, if parent is not 0 and you want your message box to appear as a Qt.Sheet of that parent, set the message box's window modality to Qt.WindowModal (default). Otherwise, the message box will be a standard dialog.
See also setWindowTitle(), setText(), setIcon(), and setStandardButtons().
The parent argument, if not None, causes self to be owned by Qt instead of PyQt.
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:
The about box has a single button labelled "OK".
See also QWidget.windowIcon() and QApplication.activeWindow().
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, as shown in the Menus example.
QApplication provides this functionality as a slot.
See also QApplication.aboutQt().
The button argument has it's ownership transferred to Qt.
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().
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.
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().
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().
Returns the button that was clicked by the user, or 0 if the user hit the Esc 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().
Opens a critical message box with the specified title and text. The standard buttons are added to the message box. defaultButton specifies the button used when Enter is pressed. If defaultButton is QMessageBox.NoButton, QMessageBox chooses a suitable default automatically.
Returns the identity of the standard button that was clicked. If Esc was pressed instead, the escape button is returned.
If parent is 0, the message box is an application modal dialog box. If parent is a widget, the message box is window modal relative to parent.
This function was introduced in Qt 4.2.
See also question(), warning(), and information().
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().
Returns the button that is activated when escape is pressed.
By default, QMessageBox attempts to automatically detect an escape button as follows:
When an escape button could not be automatically detected, pressing Esc has no effect.
This function was introduced in Qt 4.2.
See also setEscapeButton() and addButton().
Opens an information message box with the specified title and text. The standard buttons are added to the message box. defaultButton specifies the button used when Enter is pressed. If defaultButton is QMessageBox.NoButton, QMessageBox chooses a suitable default automatically.
Returns the identity of the standard button that was clicked. If Esc was pressed instead, the escape button is returned.
If parent is 0, the message box is an application modal dialog box. If parent is a widget, the message box is window modal relative to parent.
This function was introduced in Qt 4.2.
See also question(), warning(), and critical().
Opens a question message box with the specified title and text. The standard buttons are added to the message box. defaultButton specifies the button used when Enter is pressed. If defaultButton is QMessageBox.NoButton, QMessageBox chooses a suitable default automatically.
Returns the identity of the standard button that was clicked. If Esc was pressed instead, the escape button is returned.
If parent is 0, the message box is an application modal dialog box. If parent is a widget, the message box is window modal relative to parent.
This function was introduced in Qt 4.2.
See also information(), warning(), and critical().
The button argument
Removes button from the button box without deleting it.
This function was introduced in Qt 4.2.
See also addButton() and setStandardButtons().
Sets the message box's default button to button.
This function was introduced in Qt 4.2.
See also defaultButton(), addButton(), and QPushButton.setDefault().
This is an overloaded member function, provided for convenience.
Sets the message box's default button to button.
This function was introduced in Qt 4.3.
See also addButton() and QPushButton.setDefault().
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().
This is an overloaded member function, provided for convenience.
Sets the buttons that gets activated when the Escape key is pressed to button.
This function was introduced in Qt 4.3.
See also addButton() and clickedButton().
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.
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.
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().
Opens a warning message box with the specified title and text. The standard buttons are added to the message box. defaultButton specifies the button used when Enter is pressed. If defaultButton is QMessageBox.NoButton, QMessageBox chooses a suitable default automatically.
Returns the identity of the standard button that was clicked. If Esc was pressed instead, the escape button is returned.
If parent is 0, the message box is an application modal dialog box. If parent is a widget, the message box is window modal relative to parent.
This function was introduced in Qt 4.2.
See also question(), information(), and critical().
PyQt 4.4.4 for Windows | Copyright © Riverbank Computing Ltd and Trolltech AS 2008 | Qt 4.4.2 |