svg 图标在高 DPI 上出现像素化
Posted
技术标签:
【中文标题】svg 图标在高 DPI 上出现像素化【英文标题】:svg icons appears pixelated on high DPI 【发布时间】:2019-02-07 11:22:12 【问题描述】:我的一些 SVG 图标在缩放显示器 (Win10) 或使用高 DPI 显示器(Win10、Linux、Mac)时无法正确缩放。这适用于分配给 QAction 并由 QMenu 条目或 QToolButtons 显示的图标,以及分配给 QDockWidgets 的图标,如所附屏幕截图的上半部分所示。
下半部分的图标在派生的paintEvent(..)中绘制,完美渲染。
使用选项QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
系统接缝在像素图上使用一些缩放启发式方法,因此图标变得有点前卫:
有没有办法让qt在SVG基础上重绘图标而不需要派生所有的图标显示类?
真诚的 JJ
【问题讨论】:
【参考方案1】:我也遇到了 SVG 图标的问题。对我来说,这是由 SVG 文件和我试图渲染的文件之间的纵横比差异引起的。我尝试渲染为正方形,但我的 SVG 文件不是正方形。在 SVG 文件中设置正方形尺寸修复了它。
【讨论】:
以上是关于svg 图标在高 DPI 上出现像素化的主要内容,如果未能解决你的问题,请参考以下文章