【发布时间】:2015-05-15 15:10:43
【问题描述】:
Qt 的 QStyle 提供了standardIcon,这使得在给定 StandardPixmap 值的情况下获取标准图标成为可能:
const QStyle * style = QApplication::style();
const QIcon ok = style->standardIcon(QStyle::SP_DialogOkButton);
如果您想使用.setIcon 手动设置图标,例如在 QPushButtons 或其他小部件上,这非常有用。但是,我想在(外部)样式表中设置图标。如果图标在:/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);,而不是资源系统中的图标。这可能吗,还是我需要手动准备所有图标?
TL;DR
// What I have:
button.setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogOkButton));
// What I want:
button.setStyleSheet(
"qproperty-icon: url(some_url);"
);
【问题讨论】:
标签: qt qtstylesheets