tkinter中的抗锯齿字体?

时间:2015-05-19 20:39:50

标签: python fonts tkinter

有没有办法在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()

2 个答案:

答案 0 :(得分:1)

我对ttk了解不多,但确实知道你使用“style”来设置字体 - > ttk tutorial 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()

答案 1 :(得分:1)

事实证明,tk与gentoo的安装方式存在问题。通过设置使用标志

添加truetype支持后

例如,我将该行添加到/etc/portage/package.use

>=dev-lang/tk-8.5.17 truetype

然后重新出现tk:

emerge -Na tk