tkinter 中的抗锯齿字体?
Anti-aliased fonts in 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()
我不太了解 ttk,但知道您使用 "style" 设置字体-->ttk 教程 http://www.tkdocs.com/tutorial/styles.html 这在我的 Slackware box 上看起来不错,但它使用默认消除锯齿。
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()
原来是 gentoo 安装 tk 的问题。通过设置使用标志添加 truetype 支持后
例如,我将行添加到 /etc/portage/package.use
>=dev-lang/tk-8.5.17 truetype
然后重新合并tk:
emerge -Na tk
有没有办法在 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()
我不太了解 ttk,但知道您使用 "style" 设置字体-->ttk 教程 http://www.tkdocs.com/tutorial/styles.html 这在我的 Slackware box 上看起来不错,但它使用默认消除锯齿。
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()
原来是 gentoo 安装 tk 的问题。通过设置使用标志添加 truetype 支持后
例如,我将行添加到 /etc/portage/package.use
>=dev-lang/tk-8.5.17 truetype
然后重新合并tk:
emerge -Na tk