如何将默认按钮设置为“显示详细信息”?

时间:2018-10-12 12:46:56

标签: qt qpushbutton qmessagebox setdefault

我在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 :(得分:0)

我建议您使用QMessageBox::setDefaultButton来设置第一个QPushButton(它是您的QMessageBox的子代),默认情况如下:

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