У меня есть две установки Python на моем ноутбуке Debian Sid: ⑴ системный Python (v.2.7) с небольшим набором служебных пакетов (включая Tkinter
) и ⑵ Anaconda Python 3.
Легко увидеть, какие (ну, вот сколько...) шрифты доступны для двух дистрибутивов Python.
Питон 2
>>> from Tkinter import Tk
>>> from tkFont import families
>>> Tk(); available = families() ### Tk() is needed to have a running tcl interpreter
<Tkinter.Tk instance at 0x7f977bcbfb90>
>>> len(available)
3011
Питон 3
>>> from tkinter import Tk
>>> from tkinter.font import families
>>> Tk() ; available = families()
<tkinter.Tk object .>
>>> len(available)
68
Мне кажется, что Anaconda tkinter
смотрит только на основные шрифты X, поставляемые с дистрибутивомсм. правку ниже.
Знаете ли вы процедуру, альтернативно
- сообщить
tkinter
Anaconda о системных шрифтах (предпочтительная альтернатива) или - установить несколько шрифтов в дереве Анаконды, чтобы
tkinter
мог их использовать?
Тиа
Редактировать шрифты, доступные для Anaconda, действительно являются системными шрифтами, но только шрифтами, известными xfontsel
, т. е. шрифтами в пути к шрифту, которыми можно манипулировать с помощью xset
.
Я попробовал следующее
$ cd ~/.fonts ; mkfontscale ; mkfontdir ; xset fp+ `pwd`
а xfontsel
показало еще около 30 семейств шрифтов. Проверяя с помощью Python 3, я убедился, что только два семейства шрифтов были добавлены в список доступных шрифтов (а именно 'go'
и 'gomono'
— без 'consolas'
и т. д.) и создали метку
...
r = Tk() ; Label(r, text="Go Mono", font=('gomono', 24)).pack()
с Python 2 и Python 3 преуспели в обоих случаях, но Debian Python показал хороший сглаженный текст, в то время как другой был (грубым) представлением растрового изображения.
Так что в каком-то смысле я частично ответил на свой вопрос, но
- не каждое семейство шрифтов, как показано
xfontsel
, использовалосьtkinter
- даже для очень немногих, которые были признаны, исполнение оставляет желать лучшего...
и я хотел бы прочитать лучший, более полезный ответ.
'FONTCONFIG_PATH' in os.environ
? - person CommonSense   schedule 12.12.2017fontconfig
) переменной среды. - person gboffi   schedule 12.12.2017