问题描述:
用tkinter开发的图形界面,的字体明显比Windows的其他应用模糊
解决办法:
开启进程DPI感知,获取Windows系统的显示缩放系数,然后缩放字体和界面。
# 创建窗口
self.app = tk.Tk()
# 调用Windows操作系统API,启动进程dpi感知,解决高dpi屏幕字体模糊问题
windll.shcore.SetProcessDpiAwareness(1)
# 获取Windows当前的屏幕缩放系数
self.scale_factor = windll.shcore.GetScaleFactorForDevice(0) / 100
# 缩放字体
default_font = tkfont.nametofont("TkDefaultFont")
self.font_size = math.ceil(10 * self.scale_factor)
default_font.configure(family='Microsoft YaHei', size=self.font_size)
self.app.option_add('*Font', default_font)
# 缩放界面
window_width = int(400 * self.scale_factor)
window_height = int(600 * self.scale_factor)
# 获取屏幕的宽度和高度
screen_width = self.app.winfo_screenwidth() * self.scale_factor
screen_height = self.app.winfo_screenheight() * self.scale_factor
# 计算窗口的坐标使其居中
x = (screen_width - window_width) // 2
y = (screen_height - window_height) // 2
# 设置分辨率和坐标
self.app.geometry(f"{window_width}x{window_height}+{int(x)}+{int(y)}")