tkinter.ttk เป็นโมดูลที่ใช้จัดสไตล์ Widget ของ Tkinter คล้ายกับ CSS ที่ใช้จัดสไตล์ Element ใน HTML เราใช้ tkinter.ttk เพื่อจัดสไตล์ Widget ของ Tkinter
ความแตกต่างหลักระหว่าง tkinter widget และ tkinter.ttk
- Tkinter widgets ใช้เพิ่ม Button, Label, Text, ScrollBar เป็นต้น ส่วน tkinter.ttk รองรับ Widget หลากหลายมากกว่า
- Tkinter.ttk ไม่รองรับ Place, Pack() และ Grid() โดยตรง จึงแนะนำให้ใช้ Tkinter widget ร่วมกับ ttk
- Ttk มีฟีเจอร์และการตั้งค่ามากมายที่ขยายฟังก์ชันของแอปพลิเคชันเนทีฟและทำให้ดูทันสมัยกว่า
- Tkinter widget เป็น Widget พื้นฐานในไลบรารี Tkinter ส่วน ttk เป็นโมดูลที่มีธีม (Themed module)
- หากต้องการทับที Widget พื้นฐานของ Tkinter ให้ใช้
from tkinter.ttk import *
ตัวอย่างโค้ด
ตัวอย่างนี้จัดสไตล์ Widget พื้นฐานของ Tkinter ด้วยโมดูล tkinter.ttk โดยสร้างปุ่มที่เปลี่ยนสีพื้นหลังของ Text widget
# นำเข้าไลบรารี Tkinter และ ttk
from tkinter import *
from tkinter.ttk import *
# สร้างอินสแตนซ์ของเฟรม Tkinter
win = Tk()
# กำหนดขนาดหน้าต่าง
win.geometry("620x400")
# เพิ่มคลาสสำหรับจัดสไตล์ Widget
style = ttk.Style()
style.configure('TEntry', foreground='red')
# ฟังก์ชันเปลี่ยนสีพื้นหลัง
def change_color():
text.configure(background="red")
# สร้าง Label widget
text = Label(win, text="This is a New Text", foreground="white", background="blue", font=('Arial bold', 20))
text.pack(pady=20)
# สร้างปุ่ม Button
Button(win, text="Click Here", command=change_color).pack(pady=10)
win.mainloop()
ผลลัพธ์
เมื่อรันโค้ดจะได้ผลลัพธ์ดังนี้

คลิกปุ่ม "Click Here" จะเปลี่ยนสีพื้นหลังของ Text widget เป็นสีแดง
