Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะแสดงรายการตระกูลฟอนต์ที่มีอยู่ใน Tkinter ได้อย่างไร?


Tkinter แบบอักษร คุณสมบัติเป็นหนึ่งในคุณสมบัติที่มีค่าที่สุดที่ใช้ในการปรับแต่งฟอนต์เริ่มต้นของวิดเจ็ต เราได้เห็นฟอนต์มากมายและใช้ในวิดเจ็ตของเรา แต่บางครั้ง ดูเหมือนยากที่จะเดาว่าฟอนต์ใดใช้งานได้ในไลบรารี Tkinter Python Tkinter มีความเฉพาะเจาะจงมากขึ้นเกี่ยวกับการเลือกแบบอักษร เราสามารถสร้างแอปพลิเคชันที่สามารถแสดงรายการแบบอักษรทั้งหมดที่มีอยู่ในห้องสมุด Tkinter ได้

ในการใช้ แบบอักษร ห้องสมุดเราต้องนำเข้ามาในสภาพแวดล้อมของเราโดยใช้

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 รองรับ

จะแสดงรายการตระกูลฟอนต์ที่มีอยู่ใน Tkinter ได้อย่างไร?