如何在 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 支持的可用的字体列表。

广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP