QtGui.QMessageBox.information and customizing it

3.5k views Asked by At

According to you the doucmentation, QtGui.QMessageBox.information() function can be used to create a dialog box with many push buttons, using the following constants:

QMessageBox.Ok  An “OK” button defined with the AcceptRole .
QMessageBox.Open    A “Open” button defined with the AcceptRole .
QMessageBox.Save    A “Save” button defined with the AcceptRole .
QMessageBox.Cancel  A “Cancel” button defined with the RejectRole .
QMessageBox.Close   A “Close” button defined with the RejectRole .
QMessageBox.Discard     A “Discard” or “Don’t Save” button, depending on the platform, defined with the DestructiveRole .
QMessageBox.Apply   An “Apply” button defined with the ApplyRole .
QMessageBox.Reset   A “Reset” button defined with the ResetRole .
QMessageBox.RestoreDefaults     A “Restore Defaults” button defined with the ResetRole .
QMessageBox.Help    A “Help” button defined with the HelpRole .
QMessageBox.SaveAll     A “Save All” button defined with the AcceptRole .
QMessageBox.Yes     A “Yes” button defined with the YesRole .
QMessageBox.YesToAll    A “Yes to All” button defined with the YesRole .
QMessageBox.No  A “No” button defined with the NoRole .
QMessageBox.NoToAll     A “No to All” button defined with the NoRole .
QMessageBox.Abort   An “Abort” button defined with the RejectRole .
QMessageBox.Retry   A “Retry” button defined with the AcceptRole .
QMessageBox.Ignore  An “Ignore” button defined with the AcceptRole .
QMessageBox.NoButton    An invalid button.

It supports many features.

I've ben using the documentation for the QMessageBox class.

My question is, how do I change text of a push button in a message box?

1

There are 1 answers

2
Bleeding Fingers On BEST ANSWER

The QMessageBox::setButtonText is what you need.

Edit:

Thanks to Bakuriu for pointing this out.

The setButtonText method mentioned above would work when used with PyQt/PySide library compiled against Qt4.3 or earlier. Source.

And for later versions, changing the text of a button would involve:

button = messageBox.button(which)

button.setText(text)