删除 QMessageBox 中按钮上的图标

Remove icons on buttons in QMessageBox

有一个带有三个按钮的输出消息:

QMessageBox messageBox(QMessageBox::Question, tr(""), tr(""), QMessageBox::No | QMessageBox::Yes | QMessageBox::Cancel, this);
messageBox.setButtonText(QMessageBox::No, tr("1"));
messageBox.setButtonText(QMessageBox::Yes, tr("2"));
messageBox.setButtonText(QMessageBox::Cancel, tr("Cancel"));
auto response = messageBox.exec();

你能告诉我如何删除 red square 中突出显示的 standard icons 吗?

我无法在 Windows 上复制它,但您可以尝试向消息框添加自定义按钮

QMessageBox messageBox(QMessageBox::Question, tr(""), tr(""), QMessageBox::NoButton, this);

QPushButton* noButton = new QPushButton(&messageBox);
noButton->setText(tr("1"));
messageBox.addButton(noButton, QMessageBox::NoRole);

QPushButton* yesButton = new QPushButton(&messageBox);
yesButton->setText(tr("2"));
messageBox.addButton(yesButton, QMessageBox::YesRole);

QPushButton* cancelButton = new QPushButton(&messageBox);
cancelButton->setText(tr("Cancel"));
messageBox.addButton(cancelButton, QMessageBox::RejectRole);

auto response = messageBox.exec();

你能试试吗:

QMessageBox messageBox(this);
messageBox.addButton(tr("1"), QMessageBox::NoRole);
messageBox.addButton(tr("2"), QMessageBox::YesRole);
messageBox.addButton(tr("Cancel"), QMessageBox::RejectRole);
auto response = messageBox.exec();