如何使pythonide在高dpi显示器上工作而不模糊

2024-04-29 20:19:07 发布

您现在位置:Python中文网/ 问答频道 /正文

今天我遇到了一个奇怪的问题,pythonide无法在1920*1080屏幕上正确缩放字体。所以我修好了。有点

我知道在windows中有一个选项可以切换“Override high DPI scaling behavior”。问题是这个选项卡只对应用程序可用,例如“.exe”。窗户是个怪兽。在

默认情况下,pythonide的字体大小为9-10。高分辨率屏幕上的字体只会被win 10缩放

我的解决方案是手动启用DPI识别,然后在名为运行.py在

由于这不是一个真正的问题,我将张贴代码,并标记为已回答

它可能与分辨率高于1920*1080的显示器不兼容,但它的工作原理是:D


Tags: 应用程序屏幕windows选项字体exe选项卡窗户
2条回答

我使用的是Pycharm社区版。在无干扰模式下,它感觉很像空闲,但4k显示器上有可读的菜单。它也有一个python控制台,所以它看起来确实可以在空闲状态下做任何事情。在

我用ctypes手动切换“DpiAwareness”,然后根据自己的喜好调整字体。别忘了“从ctypes导入windll”

def fix_scaling(root):
"""Scale fonts on HiDPI displays.(Windows 10 only)"""
import tkinter.font
scaling = float(root.tk.call('tk', 'scaling'))
windll.shcore.SetProcessDpiAwareness(1)
if scaling < 15:
    for name in tkinter.font.names(root):
        font = tkinter.font.Font(root=root, name=name, exists=True)
        size = int(font['size'])
        if size > 0:
            font['size'] = round(1.50*size)

相关问题 更多 >