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

ความแตกต่างระหว่าง Widget ของ tkinter และ tkinter.ttk ใน Python

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()

ผลลัพธ์

เมื่อรันโค้ดจะได้ผลลัพธ์ดังนี้

ความแตกต่างระหว่าง Widget ของ tkinter และ tkinter.ttk ใน Python

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

ความแตกต่างระหว่าง Widget ของ tkinter และ tkinter.ttk ใน Python