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

更新於: 2021年4月22日

3K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.