【问题标题】:PyQt 5.10 - Enabling High DPI support for MacOS, poor Pixmap qualityPyQt 5.10 - 为 MacOS 启用高 DPI 支持,像素图质量差
【发布时间】:2018-10-12 03:02:42
【问题描述】:

我在 MacOS(具有高 DPI 视网膜显示屏)上运行的 PyQt 应用程序似乎无法正常工作。例如,下图显示了通过预览应用程序(MacOSX 默认图像查看器)手动缩放的图像(右)旁边的像素图大小 30x30(左)。在我的屏幕上,两者在视觉上是相同的尺寸,但请注意它们的分辨率不同 - 左侧的像素图的质量明显较低。

我读到 herehere 运行 PyQt 5.10 应该足以自动支持 MacOS 上的高 DPI 显示,但从个人研究看来 the application is being rendered at the “normal” resolution and scaled up.

关于如何解决这个问题有什么想法吗?我尝试设置QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_DisableHighDpiScaling),但设置的两个属性似乎都没有做任何事情。

【问题讨论】:

    标签: python qt pyqt qt5 pyqt5


    【解决方案1】:

    我能够通过推断 30x30 像素图不应该像我的屏幕上那么大这一事实来解决低密度、低分辨率像素图的问题 - 最后,我发现我需要使用setDevicePixelRatio(X),其中X 是大于1.0 的浮点数。请看下面的例子:

    # Device pixel ratio must be set AFTER loading the data!
    print(pix_map.devicePixelRatio()) # 1.0
    pix_map.loadFromData(image_data)
    pix_map.setDevicePixelRatio(2.0)
    print(pix_map.devicePixelRatio()) # 2.0
    

    【讨论】:

    • 有谁知道如何为您的计算机显示器找到最高的devicePixelRatio 值? 2.0 可能并不总是将此像素图默认设置为的最佳设置。
    猜你喜欢
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多