【发布时间】:2018-11-07 02:19:09
【问题描述】:
在我的代码中,有很多调用试图从
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 显示基于项目的打开或关闭图标
展开状态,它有两个问题:
- 它不支持 hi-dpi,而且图标很小
-
QStyle::standardPixmap被标记为过时,QStyle::standardIcon被描述为首选方法。
我不确定如何将上述代码翻译成QStyle::standardIcon。
QIcon groupIcon( style()->standardIcon( QStyle::SP_DirClosedIcon ) );
非常适合封闭的项目,并且在 hidpi 上看起来很棒。但我看不到如何添加SP_DirOpenIcon 状态。没有像“QIcon::addIcon”这样的等效方法,就像QIcon::addPixmap一样。
在这里采取什么正确的方法是什么,它对 hi-dpi 友好且面向未来?
【问题讨论】:
-
运气好能找到另一个解决方案吗?如果是的话,你介意分享一下吗?如果不是,你可能会接受这个答案,因为它是正确的并且有效。
-
不 - 我无法在这里找到一种友好的方法。结果,我们实际上只是放弃了使用 QStyle::standardIcon 并提供自定义替换图标。我仍然很想在这里找到一个符合主要标准的答案 - 生成的图标是可扩展的,并且在低/高 dpi 显示器上正常工作。
标签: qt