在我的代码中,有许多调用试图从QIcons标准像素映射创建QStyle,例如:
QIcon groupIcon;
groupIcon.addPixmap( style()->standardPixmap( QStyle::SP_DirClosedIcon ),
QIcon::Normal, QIcon::Off );
groupIcon.addPixmap( style()->standardPixmap( QStyle::SP_DirOpenIcon ),
QIcon::Normal, QIcon::On );虽然这是正确的,因为使用模型的Qt::DecorationRole图标显示了基于项的展开状态的打开或关闭的图标,但它有两个问题:
QStyle::standardPixmap被标记为过时,QStyle::standardIcon被描述为首选方法。不过,我不知道如何将上述代码转换为QStyle::standardIcon。
QIcon groupIcon( style()->standardIcon( QStyle::SP_DirClosedIcon ) );为关闭的项目很好的工作,并看上去很棒的hidpi。但我不知道如何添加SP_DirOpenIcon状态。没有像"QIcon::addIcon“这样的类似于QIcon::addPixmap的方法。
在这里采取什么正确的方法,这是友好的和未来的证明?
发布于 2018-09-16 23:09:56
如何将上述代码转换为QStyle::standardIcon
为了能够使用QStyle::standardIcon而不是QStyle::standardPixmap,请从带有QIcon::像素图的图标中选择特定的像素映射。
下面是我为您准备的如何更改代码以实现此目的的示例:
QIcon groupIcon;
QSize sz(16, 16);
groupIcon.addPixmap(style()->standardIcon(QStyle::SP_DirClosedIcon).pixmap(sz),
QIcon::Normal, QIcon::Off);
groupIcon.addPixmap(style()->standardIcon(QStyle::SP_DirOpenIcon).pixmap(sz),
QIcon::Normal, QIcon::On);这里,16是请求的大小。请注意:
像素映射可能比请求的要小,但永远不会大。
因此,相应地调整此值。
https://stackoverflow.com/questions/52358982
复制相似问题