在许多可用的 tkinter
示例中,您可能会看到如下内容:
canvas.create_text(x, y, font=('Helvetica', 12), text='foo')
但是,这在您的计算机上运行时可能不起作用(结果将完全忽略字体参数)。显然,如果其中有任何不正确的值,font
参数将被忽略。
为了检查字体系列是否有效,我怎样才能列出我系统中所有可用的字体系列?
最佳答案
这个问题已经得到了完整的回答,但是能够看到每种字体的外观对我来说很有用,这样我就可以确定我想使用哪一种。为了避免其他人重新发明轮子,我将在此处发布我的代码。如上所述,每个字体系列都显示在一个滚动窗口中。不同之处在于,此代码中的每种字体都是在字体本身中打印的。
from tkinter import *
from tkinter import font
root = Tk()
root.title('Font Families')
fonts=list(font.families())
fonts.sort()
def populate(frame):
'''Put in the fonts'''
listnumber = 1
for item in fonts:
label = "listlabel" + str(listnumber)
label = Label(frame,text=item,font=(item, 16)).pack()
listnumber += 1
def onFrameConfigure(canvas):
'''Reset the scroll region to encompass the inner frame'''
canvas.configure(scrollregion=canvas.bbox("all"))
canvas = Canvas(root, borderwidth=0, background="#ffffff")
frame = Frame(canvas, background="#ffffff")
vsb = Scrollbar(root, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=vsb.set)
vsb.pack(side="right", fill="y")
canvas.pack(side="left", fill="both", expand=True)
canvas.create_window((4,4), window=frame, anchor="nw")
frame.bind("<Configure>", lambda event, canvas=canvas: onFrameConfigure(canvas))
populate(frame)
root.mainloop()
我希望这对某些人有帮助。
关于python - 列出 `tkinter` 中的可用字体系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39614027/