2

从 Qt 5.4 升级到 Qt 5.6 使我所有的 .svg 图标变得模糊/像素化。我注意到这只发生在高密度屏幕上,比如我的 MacBookPro Retina 显示器。我在 Qt 5.6 中阅读了High DPI supportQT_AUTO_SCREEN_SCALE_FACTOR=1的文档,并设置了环境变量,但效果不大。有人有这个问题吗?我还发现了这个可能与我的问题有关的错误报告。

编辑1:

一个简单的例子是:

Image {
  source: my_icon.svg
  sourceSize.width: 50
  sourceSize.height: 50
  anchor.centerIn: parent
}
4

2 回答 2

3

这是一个丑陋的黑客,但它成功了:

Item {
    property alias image: mySvgImage

    implicitWidth: mySvgImage.paintedWidth
    implicitHeight: mySvgImage.implicitHeight / Screen.devicePixelRatio

    Image {
        id: mySvgImage

        sourceSize.width: width * Screen.devicePixelRatio
        sourceSize.height: height * Screen.devicePixelRatio
    }
}
于 2016-07-28T12:46:46.303 回答
2

我不确定如何在 QML 中应用它,但您需要AA_UseHighDpiPixmaps使用 QWidgets 设置属性。可能与 QML 相同。例如:

app.setAttribute(Qt.AA_UseHighDpiPixmaps)
于 2019-12-28T05:34:25.207 回答