QMessageBox addButton () используя стандартную иконку / отображение - PullRequest
1 голос
/ 13 февраля 2012

Я пытаюсь сделать так, чтобы в наших окнах всплывающих сообщений был более подходящий текст, а не общие слова "ОК", "Отмена" и т. Д. Однако я не вижу простого способа получить стандартные значки на кнопках. .

Например, обычно кнопка QMessageBox::Save имеет значок. Вместо этого я хочу, чтобы текст был «Сохранить деталь», но, поскольку это по-прежнему операция сохранения, было бы неплохо иметь тот же значок.

Я был бы рад привязать это к роли, так как все мои пользовательские кнопки тестирования соответствуют одной из стандартных ролей. Есть ли какой-нибудь простой способ перенести стандартные значки на пользовательские кнопки?

Ответы [ 2 ]

4 голосов
/ 13 февраля 2012

Если вы просто хотите изменить текст на StandardButton, но сохранить стандартный значок, вы можете сделать следующее:

QMessageBox *box = new QMessageBox("title", "text", QMessageBox::NoIcon, QMessageBox::Save, QMessageBox::Close, QMessageBox::Open);
box->button(QMessageBox::Save)->setText("Save part");
box->show();

Это приведет к следующему: enter image description here

И кнопка будет играть ту же роль

1 голос
/ 13 февраля 2012

Добавьте кнопку с QMessageBox :: addButton в QMessageBox, затем вызовите setIcon для кнопки со значком, возвращаемым QStyle :: standardIcon , который вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...