如何设置默认按钮为"Show details"?
How to set the default button to "Show details"?
我在使用 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
按钮设置为默认按钮。
有什么办法可以做到吗?
我建议您使用 QMessageBox::setDefaultButton
来设置第一个 QPushButton
,它是您 QMessageBox
的子项,默认如下:
if (!box.detailedText().isEmpty())
box.setDefaultButton(box.findChildren<QPushButton *>().first());
我在使用 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
按钮设置为默认按钮。
有什么办法可以做到吗?
我建议您使用 QMessageBox::setDefaultButton
来设置第一个 QPushButton
,它是您 QMessageBox
的子项,默认如下:
if (!box.detailedText().isEmpty())
box.setDefaultButton(box.findChildren<QPushButton *>().first());