Computer >> Máy Tính >  >> Lập trình >> Python

Sự khác biệt giữa các widget của tkinter và tkinter.ttk trong Python là gì?

tkinter.ttk là một mô-đun được sử dụng để tạo kiểu cho các vật dụng tkinter. Giống như CSS được sử dụng để tạo kiểu cho một phần tử HTML, chúng tôi sử dụng tkinter.ttk để tạo kiểu cho các tiện ích tkinter.

Dưới đây là những điểm khác biệt chính giữa tiện ích con tkinter và tkinter.ttk -

  • Các widget tkinter được sử dụng để thêm Buttons, Labels, Text, ScrollBar, v.v., tuy nhiên, tkinter.ttk hỗ trợ nhiều widget khác nhau so với các widget tkinter.

  • Tkinter.ttk không hỗ trợ Place, Pack () và Grid (), do đó, bạn nên sử dụng tiện ích tkinter với ttk.

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

  • Tiện ích tkinter là một tiện ích gốc trong thư viện tkinter, tuy nhiên ttk là một mô-đun theo chủ đề.

  • Để ghi đè tiện ích Tk cơ bản trong tkinter, hãy sử dụng "from tkinter.ttk import *"

Ví dụ

Trong ví dụ sau, chúng tôi đã tạo kiểu cho một widget gốc tkinter bằng cách sử dụng mô-đun tkinter.ttk. Chúng tôi sẽ tạo một nút sẽ thay đổi màu nền của tiện ích văn bản.

#Import the tkinter library
from tkinter import *
from tkinter.ttk import *

#Create an instance of tkinter frame
win = Tk()

#Set the geometry
win.geometry("620x400")

#Add a class to style the tkinter widgets
style = ttk.Style()
style.configure('TEntry', foreground = 'red')

#Define a function to change the text color
def change_color():
   text.configure(background="red")

#Create a text widget
text=Label(win,text="This is a New Text",foreground="white",
background="blue",font=('Aerial bold',20))
text.pack(pady=20)

#Create a Button widget
Button(win, text= "Click Here", command= change_color).pack(pady=10)
win.mainloop()

Đầu ra

Chạy đoạn mã trên sẽ tạo ra kết quả sau -

Sự khác biệt giữa các widget của tkinter và tkinter.ttk trong Python là gì?

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

Sự khác biệt giữa các widget của tkinter và tkinter.ttk trong Python là gì?