Informe o tkinter do Anaconda sobre as fontes do sistema ou instale novas fontes para o Anaconda
Eu tenho duas instalações Python no meu notebook Debian Sid, o Python do sistema (v.2.7) com um monte de pacotes de utilitários (incluindoTkinter
) e Py Python 3 do Anaconda.
É fácil ver quais (bem, aqui, quantas ...) fontes estão disponíveis para as duas distribuições Python.
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
Python 3
>>> from tkinter import Tk
>>> from tkinter.font import families
>>> Tk() ; available = families()
<tkinter.Tk object .>
>>> len(available)
68
Parece-me que o Anacondatkinter
olha apenas as fontes X básicasque veio com a distribuiçãoveja editar abaixo.
Você conhece um procedimento para, alternativamente
deixe Anacondatkinter
conhecer as fontes do sistema (alternativa preferida) ouinstale algumas fontes na árvore do Anaconda para quetkinter
pode usá-los?tia
Editar as fontes disponíveis para o Anaconda são de fato fontes do sistema, mas somente as fontes conhecidas porxfontsel
, ou seja, as fontes no caminho da fonte que podem ser manipuladas usandoxset
.
Eu tentei o seguinte
$ cd ~/.fonts ; mkfontscale ; mkfontdir ; xset fp+ `pwd`
exfontsel
mostrou cerca de 30 outras famílias de fontes. Verificando com Python 3, verifiquei quesó dois famílias de fontes foram adicionadas à lista de fontes disponíveis ('go'
e'gomono'
- não'consolas'
etc) e produzindo um rótulo
...
r = Tk() ; Label(r, text="Go Mono", font=('gomono', 24)).pack()
com o Python 2 e o Python 3 teve êxito em ambos os casos, mas o Python do Debian mostrou um bom texto com suavização de borda, enquanto o outro era uma representação de bitmap (aproximada).
Então, de certa forma, eu parcialmente respondi minha pergunta, mas
nem toda família de fontes, como mostra axfontsel
, foi retomado portkinter
mesmo para os poucos reconhecidos, a entrega deixa muito a desejar ...e gostaria de ler uma resposta melhor e mais útil.