如何在高DPI屏幕上的Qt 5.6中再次使svg图标清晰

时间:2016-06-22 19:25:09

标签: qt qt5.4 qt5.6

从Qt 5.4升级到Qt 5.6使我的所有.svg图标模糊/像素化。我注意到这只发生在我的MacBookPro Retina显示屏上的高密度屏幕上。我在Qt 5.6中阅读了High DPI support的文档,并且我设置了QT_AUTO_SCREEN_SCALE_FACTOR=1环境变量,但它没有太大作用。有谁有这个问题?我还发现了this错误报告,可能与我的问题有关。

编辑1:

一个简单的例子是:

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

2 个答案:

答案 0 :(得分:0)

这是一个丑陋的黑客攻击,但它确实起到了作用:

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
    }
}

答案 1 :(得分:0)

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

app.setAttribute(Qt.AA_UseHighDpiPixmaps)