【问题标题】:tkinter's size is difference between xp and win7tkinter 的大小是 xp 和 win7 的区别
【发布时间】:2017-03-11 07:24:09
【问题描述】:

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

【问题讨论】:

  • 为什么需要完全相同的尺寸?通常 tkinter 非常擅长处理字体和分辨率差异,除非您依赖具有显式窗口坐标的布局(例如:place),这通常是个坏主意。
  • 我用grid排版,但是win7下不同帧的左右边缘不在一条线上,winXP下是对齐的。
  • 为什么不在你的问题中解释一下呢?该问题的解决方案可能与如何“在 python 代码中设置项目和字体”的答案不同。
  • 对不起,我是新人,我会在下一个问题中详细说明。

标签: tkinter control-panel


【解决方案1】:

自 8.5 版以来,Tk 定义了一些全局命名字体,这些字体在 Windows 上通过读取系统主题定义的字体进行初始化。所以TkDefaultFont 是大多数 Tk 控件使用的命名字体,如果没有被覆盖的话。这意味着您更改更改TkDefaultFont,并且大多数控件将使用新的字体定义。

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

在 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())

【讨论】:

  • 谢谢,我想修改TkDefaultFont,你能告诉我para在哪个文件里吗?我在 tkinter 中没有找到它。
  • 添加到答案中,但另请参阅tutorialspoint.com/python/tk_fonts.htm
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-10
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-18
相关资源
最近更新 更多