Qt的QStyle提供了standardIcon
函数,根据StandardPixmap值可以获取标准图标:
const QStyle * style = QApplication::style();
const QIcon ok = style->standardIcon(QStyle::SP_DialogOkButton);
如果你想手动设置图标,例如在QPushButtons或其他小部件上,那么使用“.setIcon”很方便。然而,我希望在(外部)样式表中设置图标。如果该图标位于“:/images/ok.icon”,那就非常容易:
#include <QApplication>
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton button("Example");
button.setStyleSheet(
"icon-size: 32px 32px;"
"qproperty-icon: url(:/images/ok.icon);" // <--
);
return a.exec();
}
然而,我想使用style->standardIcon(QStyle::SP_DialogOkButton);
,而不是资源系统中的图标。这是可能的吗,还是我需要手动准备所有图标?
简洁版
// What I have:
button.setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogOkButton));
// What I want:
button.setStyleSheet(
"qproperty-icon: url(some_url);"
);
setIcon
使用适当的图标尺寸。如果我将其设置为-16.png
变体,图标是否会被正确调整大小?(目前我没有安装 Qt 版本)。此外,standardIcon
使用操作系统/窗口管理器默认图标,而 Trolltech 图标不同。有什么办法可以解决这个问题吗?无论如何,感谢您的回答。 - Zeta