我在我的 Debian Sid 笔记本上安装了两个 Python,⑴ 系统的 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 字体,请参阅下面的编辑。
你知道一个程序,或者
- 让 Anaconda
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
- 即使对于极少数被认可的人来说,这种演绎也有太多不足之处......
我想阅读一个更好,更有用的答案。