svg图标在高DPI上显示为像素化

时间:2019-02-07 11:22:13

标签: c++ qt icons

我的某些SVG图标在缩放显示器(Win10)或使用高DPI显示器(Win10,Linux,Mac)时无法正确缩放。这适用于分配给QAction并由QMenu条目或QToolButtons显示的图标,以及分配给QDockWidgets的图标,如所附屏幕截图的上部所示。

下部的图标绘制在派生的paintEvent(..)中,并完美呈现。

Pixelated action icons

使用选项QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);,系统希望在像素图上使用一些缩放试探法,以使图标变得前卫:

Edgy action icons

有没有什么方法可以让qt在SVG基础上重绘图标,而无需派生所有显示图标的类?

真诚的 JJ

1 个答案:

答案 0 :(得分:0)

我也遇到了SVG图标的问题。对我来说,这是由于SVG文件与我尝试呈现为SVG文件之间的宽高比差异引起的。我尝试渲染为正方形,但我的SVG文件不是正方形。在SVG文件中设置正方形尺寸可以解决该问题。