How to change the caption of a button in a QDialogButtonBox?

matteo picture matteo · Jul 8, 2015 · Viewed 13k times · Source

I have added a QDialogButtonBox button with the default Cancel and OK buttons.

Is there a way to change the caption of these buttons? For example, OK should become Run.

Answer

kefir500 picture kefir500 · Jul 8, 2015

You will have to do some slight coding in your cpp file:

ui->buttonBox->button(QDialogButtonBox::Ok)->setText("Run");
ui->buttonBox->button(QDialogButtonBox::Cancel)->setText("Exit");

Note that you may also need to include the QPushButton header:

#include <QPushButton>

Update:

Did not notice the pyqt tag. I'm not familiar with Python (and PyQt in particular), but I think this should do the job:

self.ui.buttonBox.button(QDialogButtonBox.Ok).setText("Run")
self.ui.buttonBox.button(QDialogButtonBox.Cancel).setText("Cancel")

Also, as pointed out by Kuba Ober, changing the text of standard buttons is not the best approach. The most correct way is to add custom buttons with an appropriate role.

self.ui.buttonBox.addButton("Run", QDialogButtonBox.ActionRole)