Как установить шрифт для текста?

Я пытаюсь найти лучший шрифт для отображения символов utf-8 вtk.Text.

Я позволил python распечатать все фамилии, известные tk, используя этот код:

print(font.families(root=self.parent))

и все известные имена для использования с помощью этого кода:

print(font.names(root=self.parent))

Однако выходные данные из семейств представляют собой список шрифтов, имена которых состоят из одного или нескольких слов. Легко установить слова одним словом:

text = tk.Text(master=self.frame)
text.configure(font='helvetica 12')

Но когда я пытаюсь сделать то же самое с именами шрифтов, которые состоят из нескольких слов, я получаю сообщение об ошибке:

_tkinter.TclError: expected integer but got <second word of the family name>

Я не могу стилизовать его, так как это виджет tk, а не ttk, поэтому, к сожалению, я не могу сделать:

style.configure('My.TText', fontsize=12, font='<family name with multiple words>')

Я также попытался просто удалить пробелы в фамилии, например:

text.configure(font='fangsongti')

Но это заставляет tkinter использовать некоторый запасной шрифт. Я проверил это, введя имя как:

text.configure(font='fangsongtisdngfjsbrgkrkjgbkl')
print(text.cget('font'))

И это приводит к печати точной строки, которую я ввел в качестве фамилии. Таким образом, он просто принимает все, кроме нескольких имен.

Я нашел несколько шрифтов, которые выглядят нормально, но только с определенными размерами, и я не уверен, что они доступны в большинстве систем:

# helvetica 12
# gothic 13
# mincho 13

Как я могу установить шрифты с именами, состоящими из нескольких слов? Если я не могу, какой шрифт, имеющий одно название, подходит для отображения символов utf-8, таких как, например, китайские (но не исключительно!) Символы на общих размерах шрифтаа также доступно в большинстве систем?

Ответы на вопрос(1)

Ваш ответ на вопрос