Python Tkinter:如何获取字体信息

时间:2019-07-05 12:04:56

标签: python tkinter fonts

我想获取有关Tk菜单中使用的实际字体(尤其是大小)的信息。 我发现菜单的font属性设置为TkMenuFont。 但是,如果我尝试检查其内容,似乎除了字符串表示法之外什么都做不到:

print(dir(menu['font']))

输出:

 ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', 
   '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', 
   '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', 
   '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', 
   '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 
   'string', 'typename']

因此,问题是:如何获取有关Tk字体的信息?

1 个答案:

答案 0 :(得分:2)

tkinter.font.Font类似乎能够将menu['font']变成具有可检查属性的东西:

import tkinter
from tkinter.font import Font

root = tkinter.Tk()
menu = tkinter.Menu()
font = tkinter.font.Font(font=menu["font"])
print(font.actual())

结果:

{'family': 'Segoe UI', 'size': 9, 'weight': 'normal', 'slant': 'roman', 'underline': 0, 'overstrike': 0}

您可以使用常用的dict索引语法访问单个属性,例如:

font.actual()["size"]