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

Sự khác biệt giữa update và update_idletasks trong Tkinter là gì?

Cập nhật phương thức xử lý tất cả các tác vụ nhàn rỗi đang chờ xử lý, các sự kiện chưa được chờ đợi, các hàm gọi và các lệnh gọi lại. Phương pháp này có thể áp dụng để cập nhật và xử lý tất cả các sự kiện hoặc tác vụ như vẽ lại widget, quản lý hình học, định cấu hình thuộc tính widget, v.v.

Nó cũng đảm bảo rằng nếu ứng dụng có bất kỳ tác vụ nào đang chờ xử lý, thì nó sẽ chỉ cập nhật hoặc làm mới giá trị ảnh hưởng đến toàn bộ phần của ứng dụng. Sử dụng cập nhật đối với một nhiệm vụ đang chờ xử lý sẽ rất khó chịu, do đó Tkinter cũng cung cấp update_idletasks () phương pháp. Nó chỉ cập nhật tác vụ nhàn rỗi đang chờ xử lý ổn định hoặc không cập nhật trong ứng dụng vì một lý do nào đó. Nó gọi tất cả các sự kiện đang chờ xử lý mà không cần xử lý bất kỳ sự kiện nào khác hoặc gọi lại.

Phương thức update () và update_idletask () hữu ích để xử lý bất kỳ tác vụ nào đang chờ xử lý hoặc không hoạt động. Tuy nhiên, sự khác biệt duy nhất giữa update () update_idletasks () đó có phải là update () không xử lý tất cả các sự kiện có trong ứng dụng, trong khi update_idletasks () chỉ xử lý những sự kiện không chạy hoặc ổn định.

Ví dụ

Chúng tôi có thể hiểu việc sử dụng và ứng dụng của update_idletasks () thông qua ví dụ này.

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

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

# Set the size of the Tkinter window
win.geometry("700x350")
def add_Text():
   for i in range(10):
      label.config(text= "The loops starts from 1 to "+ str(i))
      # Wait for two seconds
      win.update_idletasks()
      time.sleep(2)
      label.config(text= i)

# Add a label text
label= Label(win, text="Original Text", font= ('Aerial 16'))
label.pack(pady= 30)

# Add a button to update the Label text
ttk.Button(win, text="Change Text", command= add_Text).pack(pady= 40)
win.mainloop()

Đầu ra

Chạy đoạn mã trên sẽ hiển thị một cửa sổ có tiện ích Nhãn và một nút.

Sự khác biệt giữa update và update_idletasks trong Tkinter là gì?

Khi chúng tôi nhấn nút, tiện ích Nhãn sẽ tự động được cập nhật trong phạm vi nhất định của vòng lặp.

Sự khác biệt giữa update và update_idletasks trong Tkinter là gì?