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

การตั้งค่าขนาดฟอนต์ข้อความใน Tkinter Canvas

Tkinter Canvas สร้างข้อความด้วย create_text(x, y, text="...", font=(family, size, style)) ฟอนต์กำหนดเป็น Tuple: (font_family, font_size, font_style)

ตัวอย่างโค้ด


from tkinter import *
from tkinter import ttk

win = Tk()
win.geometry("750x250")

canvas = Canvas(win, width=430, height=450)
text_id = canvas.create_text(200, 40, text="Hey, Developers!",
                             font=('Helvetica', 30, 'bold'))
canvas.pack()

win.mainloop()

รูปแบบ Font Tuple


# (family, size, style)
font=('Helvetica', 12)           # แค่ฟอนต์และขนาด
font=('Helvetica', 12, 'bold')   # Bold
font=('Helvetica', 12, 'italic') # Italic
font=('Helvetica', 12, 'bold italic') # Bold + Italic
font=('Helvetica', 12, 'underline')   # Underline
font=('Helvetica', 12, 'overstrike')  # Strikethrough

การเปลี่ยนฟอนต์หลังสร้าง (Item Configuration)


# สร้างข้อความ
text_id = canvas.create_text(100, 100, text="Hello", font=('Arial', 12))

# เปลี่ยนฟอนต์ภายหลัง
canvas.itemconfig(text_id, font=('Times', 24, 'bold italic'))
canvas.itemconfig(text_id, fill='red')      # สีข้อความ
canvas.itemconfig(text_id, text="New Text") # เปลี่ยนข้อความ

ฟอนต์ที่มีในระบบ (Platform Dependent)

  • Windows: Arial, Times New Roman, Courier New, Consolas, Segoe UI, Calibri
  • macOS: Helvetica, Times, Courier, Monaco, Menlo, San Francisco
  • Linux: DejaVu Sans, DejaVu Serif, Liberation Sans, Noto Sans, Ubuntu
  • Cross-platform safe: TkDefaultFont, TkTextFont, TkFixedFont

การใช้ Font Object (tkinter.font)


import tkinter.font as tkFont

custom_font = tkFont.Font(family='Helvetica', size=18, weight='bold', slant='italic')
canvas.create_text(100, 100, text="Font Object", font=custom_font)

# วัดขนาดข้อความ
width = custom_font.measure("Hello World")
height = custom_font.metrics('linespace')

การประยุกต์ใช้

Game UI, Diagram labels, Chart annotations, Custom drawing apps, Watermark text, Dynamic text sizing