Как установить для кнопки по умолчанию «Показать подробности»? - PullRequest
0 голосов
/ 12 октября 2018

У меня возникла эта проблема с QMessageBox:

QMessageBox box;
box.setWindowTitle(tr("Warning box"));
box.setIcon(QMessageBox::Warning);
box.setText(tr("Something happened, see details or press OK"));
box.setDetailedText("There is a detail. World is not answering to Hello, try to say Hello world again!");
box.setStandardButtons(QMessageBox::Ok);
box.setDefaultButton(QMessageBox::NoButton);
box.exec();

Если я сделаю:

box.setDefaultButton(QMessageBox::NoButton);

, кнопка ОК по-прежнему помечена как значение по умолчанию.

Я не нашел перечисление QMessageBox::ShowDetails, поэтому не могу установить в качестве кнопки по умолчанию кнопку Show details.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 13 октября 2018

Я бы предложил вам использовать QMessageBox::setDefaultButton, чтобы установить первое QPushButton, которое является дочерним по отношению к вашему QMessageBox, по умолчанию, например:

if (!box.detailedText().isEmpty())
        box.setDefaultButton(box.findChildren<QPushButton *>().first());
...