如何在Tkinter中列出可用字体?
Tkinter 字体 属性是用于自定义小部件默认字体的最有价值的属性之一。我们已经看到了许多字体并在我们的小部件中使用过它们,但有时候似乎很难猜测哪种字体适用于Tkinter库。Python的Tkinter对于选择字体更加具体。我们可以创建一个应用程序,可以列出Tkinter库中所有可用的字体。
要使用 字体 库,我们必须在环境中导入它,使用以下命令:
from tkinter import font
有几个步骤可以创建这个特定应用程序,
- 定义一个函数并使用 font.families() 构造函数创建一个字体实例。
-
遍历所有字体并使用标签小部件将它们显示出来,通过分配特定字体的文本值来进行。
-
创建一个带有垂直滚动条的画布。
-
在画布内创建一个框架,我们将在其中显示所有字体。
-
将鼠标按钮绑定到滚动小部件,以在框架中启用滚动功能。
例子
#导入所需库
from tkinter import *
from tkinter import font
#创建一个Tkinter框架实例
win = Tk()
win.geometry("750x350")
win.title('Font List')
#使用字体构造函数创建一个字体列表
fonts=list(font.families())
fonts.sort()
def fill_frame(frame):
for f in fonts:
#创建一个标签来显示字体
label = Label(frame,text=f,font=(f, 14)).pack()
def onFrameConfigure(canvas):
canvas.configure(scrollregion=canvas.bbox("all"))
#创建一个画布
canvas = Canvas(win,bd=1, background="white")
#在画布中创建一个框架
frame = Frame(canvas, background="white")
#添加一个滚动条
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支持的可用字体列表。