tkinter中的抗锯齿字体?

3

有没有办法在tkinter中获取抗锯齿字体?如果我像这样增加默认字体的大小:

default_font = tkFont.nametofont("TkDefaultFont")
default_font.configure(size=32)

文本显示不清晰。以下是相关版本信息:
Python 2.7.9 (default, May  6 2015, 09:33:48) 
>>> Tkinter.__version__
'$Revision: 81008 $

我正在使用 Gentoo Linux ,已安装 Tk 8.5 (我相信应该支持抗锯齿字体)。
$ equery l tk
[IP-] [  ] dev-lang/tk-8.5.17:0/8.5

编辑:添加完整的 MWE 描述我正在做的事情:

from Tkinter import *
import tkFont
from ttk import *

root = Tk()
note = Notebook(root)

default_font = tkFont.nametofont("TkDefaultFont")
default_font.configure(size=48)

tab1 = Frame(note)
tab2 = Frame(note)
Button(tab1, text='Exit', command=root.destroy).pack(padx=100, pady=100)

note.add(tab1, text = "Curvy Words")
note.add(tab2, text = "Aliased")
note.pack()
root.mainloop()
exit()

Tkinter ttk/tile小部件支持抗锯齿字体。https://docs.python.org/2/library/ttk.html - user4171906
@CurlyJoe 我已经更新了一个MWE来描述我正在做的事情。我读到过瓷砖小部件支持抗锯齿字体,但从我所看到的来看,我正在使用tk 8.5中的新小部件,还需要什么才能获得抗锯齿字体呢? - zje
2个回答

2
事实证明,这是gentoo安装tk的问题。通过设置use flag添加truetype支持后,问题得以解决。
例如,我在/etc/portage/package.use中添加了以下行:
>=dev-lang/tk-8.5.17 truetype

然后重新合并tk:
emerge -Na tk

1
这需要使用正确的字体支持构建Tk。如果包含反锯齿支持(至少在X11上),则root.eval("tk::pkgconfig get fontsystem")应返回“xft”。 - patthoyts
知道这个很好,因为有时别人也会遇到类似的问题。另外,在gentoo/portage中也可以查看infinality。这里会有明显的改善。 - user4171906

1

我对ttk不是很了解,但是知道你可以使用“style”来设置字体——>ttk教程 http://www.tkdocs.com/tutorial/styles.html。这在我的Slackware盒子上看起来很好,但默认情况下会使用抗锯齿。

from Tkinter import *
import ttk
import tkFont

root = Tk()

##default_font = tkFont.nametofont("TkDefaultFont")
##default_font.configure(size=48)

f = tkFont.Font(family='helvetica', size=24)
s = ttk.Style()
s.configure('.', font=f)

note = ttk.Notebook(root)
tab1 = ttk.Frame(note)
tab2 = ttk.Frame(note)

note.add(tab1, text = "Curvy Words")
note.add(tab2, text = "Aliased")
note.pack()

ttk.Style().configure("TButton", padding=6, relief="flat",
                       background="white")

ttk.Button(tab1, text='Exit', command=root.destroy).pack(padx=100, pady=100)

root.mainloop()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接