QMessageBox addButton()使用标准图标/显示

时间:2012-02-13 16:45:08

标签: c++ qt

我正在尝试让我们的弹出消息框有更合适的文本,而不是通用的“确定”,“取消”等等。但是,我没有看到一种简单的方法来获取按钮上的标准图标

例如,通常QMessageBox::Save按钮带有一个图标。相反,我希望文本是“保存部分”,但由于这仍然是一个保存操作,所以拥有相同的图标会很好。

我很乐意将此与角色绑定,因为我的所有自定义测试按钮都映射到其中一个标准角色。有没有简单的方法将标准图标放到自定义按钮上?

2 个答案:

答案 0 :(得分:4)

如果您只想更改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 :(得分:1)

向QMessageBox添加一个带有QMessageBox::addButton的按钮,然后使用您想要的setIcon返回的图标调用Button的QStyle::standardIcon