提到QMenu
中如何定制Icon
的大小,第一个想到的是使用qss
来修改样式,便尝试了如下语句:
QMenu::icon
{
width: 24px;
height: 24px;
}
但是经尝试,这个办法并未奏效,QMenu
中图标大小,默认为16*16,是从QStyle
中读取而来,我们可以通过自定义一个QStyle
来实现修改图标大小,下面给出具体实现方式。
class CustomStyle : public QProxyStyle
{
Q_OBJECT
public:
virtual int pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const
{
if (metric == QStyle::PM_SmallIconSize) {
return 24;
}
return QProxyStyle::pixelMetric(metric, option, widget);
}
};
然后将自定义风格设置到QMenu
上即可:
QMenu *menu = new QMenu(this);
CustomStyle *style = new CustomStyle();
menu->setStyle(style);
自定风格前的效果:
把Icon大小改夸张一点: