Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Khác biệt giữa widget tkinter và tkinter.ttk trong Python

tkinter.ttk là module dùng để tạo kiểu (styling) cho các widget Tkinter. Giống như CSS dùng để tạo kiểu cho phần tử HTML, ta dùng tkinter.ttk để tạo kiểu cho widget Tkinter.

Dưới đây là những khác biệt chính giữa widget tkinter và tkinter.ttk:

  • Widget tkinter dùng để thêm Button, Label, Text, ScrollBar, v.v., tuy nhiên tkinter.ttk hỗ trợ nhiều loại widget hơn so với widget tkinter gốc.

  • Tkinter.ttk không hỗ trợ Place, Pack() và Grid(), do đó khuyến nghị dùng widget tkinter kết hợp với ttk.

  • Ttk có nhiều tính năng và cấu hình mở rộng chức năng của ứng dụng native, làm cho giao diện trông hiện đại hơn.

  • Widget tkinter là widget gốc trong thư viện tkinter, trong khi ttk là module có chủ đề (themed module).

  • Để ghi đè widget Tk cơ bản trong tkinter, dùng "from tkinter.ttk import *"

Ví dụ

Trong ví dụ sau, ta tạo kiểu cho widget tkinter gốc bằng module tkinter.ttk. Ta sẽ tạo nút bấm thay đổi màu nền của widget văn bản.

# Nhập thư viện tkinter
from tkinter import *
from tkinter.ttk import *

# Tạo instance của frame tkinter
win = Tk()

# Thiết lập geometry
win.geometry("620x400")

# Thêm class để tạo kiểu cho widget tkinter
style = ttk.Style()
style.configure('TEntry', foreground='red')

# Định nghĩa hàm thay đổi màu văn bản
def change_color():
    text.configure(background="red")

# Tạo widget văn bản
text = Label(win, text="Đây là văn bản mới", foreground="white", background="blue", font=('Arial bold', 20))
text.pack(pady=20)

# Tạo widget Button
Button(win, text="Nhấn vào đây", command=change_color).pack(pady=10)

win.mainloop()

Kết quả

Chạy code sẽ cho kết quả sau:

Khác biệt giữa widget tkinter và tkinter.ttk trong Python

Bây giờ, nhấn nút "Nhấn vào đây". Nó sẽ thay đổi màu nền của widget văn bản thành Đỏ.

Khác biệt giữa widget tkinter và tkinter.ttk trong Python