Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt 5.10-支持MacOS的高DPI,但Pixmap质量较差_Python_Qt_Pyqt_Qt5_Pyqt5 - Fatal编程技术网

Python PyQt 5.10-支持MacOS的高DPI,但Pixmap质量较差

Python PyQt 5.10-支持MacOS的高DPI,但Pixmap质量较差,python,qt,pyqt,qt5,pyqt5,Python,Qt,Pyqt,Qt5,Pyqt5,我在MacOS上运行的PyQt应用程序(具有高DPI视网膜显示)似乎无法正常工作。例如,下图显示了通过预览应用程序(MacOSX默认图像查看器)在手动缩放图像(右)旁边的一个大小为30x30(左)的Pixmap。在我的屏幕上,两者在视觉上都是相同的尺寸,但请注意它们的分辨率是如何不同的——左侧的pixmap质量明显较低 我读到,运行PyQt 5.10应该足以自动支持MacOS上的高DPI显示,但从个人研究来看似乎是这样 有没有办法解决这个问题?我试着设置qtwidts.QApplication

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

我读到,运行PyQt 5.10应该足以自动支持MacOS上的高DPI显示,但从个人研究来看似乎是这样


有没有办法解决这个问题?我试着设置
qtwidts.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
qtwidts.QApplication.setAttribute(QtCore.Qt.AA_DisableHighDpiScaling)
,但设置的属性似乎都没有任何作用。

我能够用低密度解决这个问题,通过推断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可能并不总是默认此pixmap的最佳设置。