Python Tkinter:如何获取字体信息

Python Tkinter: How to GET font info

我想获得有关 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 字体的信息?

tkinter.font.Font class 似乎能够将 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}

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

font.actual()["size"]