c++ - svg 图标在高 DPI 上出现像素化
问题描述
我的一些 SVG 图标在缩放显示器 (Win10) 或使用高 DPI 显示器(Win10、Linux、Mac)时无法正确缩放。这适用于分配给 QAction 并由 QMenu 条目或 QToolButtons 显示的图标,以及分配给 QDockWidgets 的图标,如所附屏幕截图的上部所示。
下半部分的图标在派生的paintEvent(..)中绘制并完美渲染。
使用选项QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
系统接缝在像素图上使用一些缩放启发式方法,因此图标变得有点前卫:
有什么方法可以让 qt 在 SVG 基础上重绘图标而不需要派生所有图标显示类?
真诚的 JJ
解决方案
我也遇到了 SVG 图标的问题。对我来说,这是由 SVG 文件和我试图渲染的文件之间的纵横比差异引起的。我尝试渲染为正方形,但我的 SVG 文件不是正方形。在 SVG 文件中设置正方形尺寸修复了它。
推荐阅读
- sql-server - 恢复时备份 SQL Server Developer 大喊它启用了数据压缩,仅在企业版上可用
- c - 我的 if 语句与我希望它做的相反
- mysql - AND , OR 子句在 MYSQL 中对我不起作用
- python - 查看字符串是否包含不同数据帧中的子字符串
- amazon-cognito - AWS Cognito - preAuthentication 和 customMessage 触发器
- vue.js - Vue 不使用 Webpack 渲染模板,只考虑运行时构建
- python - 无法在 Visual Studio Code 中调试 Flask 应用程序
- javascript - 错误的
- 标签行为
- javascript - JS函数未从动态加载的元素中调用
- java - 如何使用java中的超级函数将数据传递给父类?