我一直在使用Python 3.7(Anaconda)和Pyside2,一切都很好。但是,在使用Microsoft Surface平板电脑时,显示的缩放比例会导致输出失真(文本等),这是因为分辨率为2736x1824并且文本大小为200%。如果将分辨率设置为1600x900并将大小设置为100%,则可以使GUI程序显示为OK。
有一个有关使python和pythonw具有较高DPI感知能力的链接,但是对于运行会影响注册表的代码,我总是有些紧张。我想知道如何手动执行此操作:
Marking Your Python Program as High DPI Aware Seamlessly Windows
我已经设置了python.exe和pythonw.exe(通过Windows-属性-兼容性-更改高DPI设置,请选中“使用此设置来解决缩放问题”),但没有骰子。
Microsoft的评论在这里:
https://support.microsoft.com/en-us/help/3025083/windows-scaling-issues-for-high-dpi-devices
但是我不知道在这种情况下是否还有更好的方法来处理Qt5 / Pyside2图形。
解决方法可以,但不理想。
在Windows中,您可以使用ctypes
:
import ctypes
try: # >= win 8.1
ctypes.windll.shcore.SetProcessDpiAwareness(2)
except: # win 8.0 or less
ctypes.windll.user32.SetProcessDPIAware()
更多可以参考SetProcessDpiAwareness。