作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Kubuntu 14.04 上的 Qt5 程序 (Qt 5.5.1) 中的 QDialogButtonBox
中制作一个带有图标的自定义按钮。读书this answer ,我知道不建议简单地编辑库存按钮,所以我将 QDialogButtonBox::addButton
与我的自定义按钮一起使用。但出于某种原因,虽然我确实成功地更改了股票按钮的图标,但在使用 QPushButton::setIcon
之后,我的自定义按钮仍然没有任何图标。
这是代码
#include <QApplication>
#include <QDialogButtonBox>
#include <QPushButton>
int main(int argc, char** argv)
{
QApplication app(argc,argv);
QDialogButtonBox bbox(QDialogButtonBox::Close);
const auto button=new QPushButton(QObject::tr("Convert..."));
bbox.addButton(QObject::tr("Convert..."), QDialogButtonBox::ApplyRole);
const auto icon=QIcon::fromTheme("system-run");
// This doesn't work - the button remains without icon
button->setIcon(icon);
// But this does
bbox.button(QDialogButtonBox::Close)->setIcon(icon);
bbox.show();
return app.exec();
}
我做错了什么?如何在无需编辑库存按钮的情况下在我的自定义按钮上添加图标?
最佳答案
您正在创建两个按钮。一个不在任何地方显示的按钮,以及一个添加到 bbox
中的按钮。您正在为您没有在任何地方显示的按钮设置图标。
修正你的代码,这样你就不会创建两个单独的按钮,并为你放在 bbox
中的按钮设置一个图标:
QPushButton *button = bbox.addButton(QObject::tr("Convert..."), QDialogButtonBox::ApplyRole);
...
button->setIcon(icon);
关于c++ - 如何将图标设置为 QDialogButtonBox 中的新按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49028965/
我是一名优秀的程序员,十分优秀!