Как установить шрифт для текста?
Я пытаюсь найти лучший шрифт для отображения символов 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, таких как, например, китайские (но не исключительно!) Символы на общих размерах шрифтаа также доступно в большинстве систем?