Windows上的Python程序和Pyside2 / Qt5的DPI意识

问题描述 投票:0回答:1

我一直在使用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图形。

解决方法可以,但不理想。

python pyqt5 tablet dpi pyside2
1个回答
0
投票

在Windows中,您可以使用ctypes

import ctypes

try: # >= win 8.1
    ctypes.windll.shcore.SetProcessDpiAwareness(2)
except: # win 8.0 or less
    ctypes.windll.user32.SetProcessDPIAware()

更多可以参考SetProcessDpiAwareness

© www.soinside.com 2019 - 2024. All rights reserved.