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"]
我想获得有关 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"]