Python Tkinter: как получить информацию о шрифте - PullRequest
1 голос
/ 05 июля 2019

Я хотел бы получить информацию о фактическом шрифте (особенно о размере), используемом в меню Tk. Мне удалось обнаружить, что свойство font меню установлено на TkMenuFont. Однако, если я пытаюсь проверить его содержимое, кажется, что я не могу получить ничего, кроме некоторых строковых представлений:

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

outpus:

 ['__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 Ответ

2 голосов
/ 05 июля 2019

Класс 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}

Вы можете получить доступ к отдельным свойствам с помощью обычного синтаксиса индексации, например:

font.actual()["size"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...