Tkinter 特金特';s的大小是xp和win7之间的差异

Tkinter 特金特';s的大小是xp和win7之间的差异,tkinter,control-panel,Tkinter,Control Panel,我的GUI是由tkinter在winXP中编程的,但我发现它看起来大小不同。我学习它是因为系统默认字体不同。在CMD中使用“control/name Microsoft.Personalization/page pageColorization”时,可以打开此页面。但是如何在python代码中设置项目和字体呢?因为版本8.5 Tk定义了一些全局命名字体,这些字体是通过读取系统主题定义的字体在Windows上初始化的。因此TkDefaultFont是大多数Tk控件使用的命名字体(如果未被覆盖)。这

我的GUI是由tkinter在winXP中编程的,但我发现它看起来大小不同。我学习它是因为系统默认字体不同。在CMD中使用“control/name Microsoft.Personalization/page pageColorization”时,可以打开此页面。但是如何在python代码中设置项目和字体呢?

因为版本8.5 Tk定义了一些全局命名字体,这些字体是通过读取系统主题定义的字体在Windows上初始化的。因此
TkDefaultFont
是大多数Tk控件使用的命名字体(如果未被覆盖)。这意味着您要更改
TkDefaultFont
,并且大多数控件将使用新的字体定义

否则,每个控件都有一个
-font
来传递要使用的字体。还有一个数据库,用于按小部件类分配选项

在tkinter中,Tk字体处理由
tkinter.font
包提供,使用该包可以访问和修改内置的命名字体对象

import tkinter.font
# show the defined fonts
print(tkinter.font.names())
# access the default UI font
f = tkinter.font.nametofont('TkDefaultFont')
print(f.configure())
# modify the default font
f.configure(family='Tahoma')
print(f.configure())

为什么它需要完全相同的尺寸?通常,tkinter在处理字体和分辨率差异方面非常出色,除非您依赖于具有显式窗口坐标的布局(例如:
place
),这通常是一个坏主意。我使用网格进行布局,但不同帧的左边缘和右边缘在win7中不在一条线上,这就是winXP中的对齐方式。为什么不在你的问题中解释一下呢?这个问题的解决方案可能与“在python代码中设置项目和字体”的答案不同。对不起,我是新手,我将在下一个问题中详细说明。谢谢,我想修改
TkDefaultFont
,你能告诉我哪个文件中的段落吗?我没有在tkinter中找到它。添加到答案中,但请参见