Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tkinter에서 update와 update_idletasks의 차이점은 무엇입니까?

<시간/>

업데이트 메서드는 보류 중인 모든 유휴 작업, 방문하지 않은 이벤트, 호출 함수 및 콜백을 처리합니다. 이 방법은 위젯 다시 그리기, 기하학 관리, 위젯 속성 구성 등과 같은 모든 이벤트 또는 작업을 업데이트하고 처리하는 데 적용할 수 있습니다.

또한 응용 프로그램에 보류 중인 작업이 있는 경우 응용 프로그램의 전체 부분에 영향을 주는 값을 업데이트하거나 새로 고칩니다. 업데이트 사용 보류 중인 단일 작업의 경우 불쾌할 수 있으므로 Tkinter는 update_idletasks()도 제공합니다. 방법. 어떤 이유로 애플리케이션에서 안정적이거나 업데이트되지 않는 유휴 보류 작업만 업데이트합니다. 다른 이벤트나 콜백을 처리하지 않고 보류 중인 모든 이벤트를 호출합니다.

update() 및 update_idletask() 메서드는 보류 중이거나 유휴 작업을 처리하는 데 유용합니다. 그러나 update()의 유일한 차이점은 및 update_idletasks() update()입니다. update_idletasks() 동안 애플리케이션에 있는 모든 이벤트를 처리합니다. 실행 중이 아니거나 안정적이지 않은 이벤트만 처리합니다.

예시

update_idletasks()의 사용 및 적용을 이해할 수 있습니다. 이 예제를 통해 방법.

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

출력

위의 코드를 실행하면 레이블 위젯과 버튼이 있는 창이 표시됩니다.

Tkinter에서 update와 update_idletasks의 차이점은 무엇입니까?

버튼을 누르면 Label 위젯이 루프의 주어진 범위에서 자동으로 업데이트됩니다.

Tkinter에서 update와 update_idletasks의 차이점은 무엇입니까?