如何在 Tkinter 中列出可用的字体族?
Tkinter 的 **font** 属性是用于自定义小部件默认字体的最有价值的属性之一。我们已经见过很多字体并在我们的部件中使用了它们,但有时,猜测 Tkinter 库中哪些字体适用似乎很复杂。Python Tkinter 对选择字体更具体。我们可以创建一个应用程序,该应用程序可以列出 Tkinter 库中所有可用的字体。
要使用 **font** 库,我们必须使用以下方法在我们的环境中导入它:
from tkinter import font
创建此特定应用程序需要几个步骤:
定义一个函数并使用 **font.families()** 构造函数创建字体的实例。
迭代所有字体,并使用 Label Widget 显示它们,为文本值分配特定的字体。
创建一个带有垂直滚动条的画布。
在画布内创建一个框架,我们将在其中显示所有字体。
将鼠标按钮绑定到滚动部件,以便在框架中启用滚动功能。
示例
#Import required library from tkinter import * from tkinter import font #Create an instance of tkinter frame win = Tk() win.geometry("750x350") win.title('Font List') #Create a list of font using the font-family constructor fonts=list(font.families()) fonts.sort() def fill_frame(frame): for f in fonts: #Create a label to display the font label = Label(frame,text=f,font=(f, 14)).pack() def onFrameConfigure(canvas): canvas.configure(scrollregion=canvas.bbox("all")) #Create a canvas canvas = Canvas(win,bd=1, background="white") #Create a frame inside the canvas frame = Frame(canvas, background="white") #Add a scrollbar scroll_y = Scrollbar(win, orient="vertical", command=canvas.yview) canvas.configure(yscrollcommand=scroll_y.set) scroll_y.pack(side="right", fill="y") canvas.pack(side="left", expand=1, fill="both") canvas.create_window((5,4), window=frame, anchor="n") frame.bind("<Configure>", lambda e, canvas=canvas: onFrameConfigure(canvas)) fill_frame(frame) win.mainloop()
输出
执行上述代码将显示一个窗口,其中包含 Tkinter 支持的可用的字体列表。
广告