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

Python에서 Tkinter를 사용하여 자동으로 업데이트되는 GUI를 어떻게 생성합니까?

<시간/>

GUI 창에는 레이블, 버튼, 텍스트 상자 등과 같은 많은 컨트롤이 있습니다. 때때로 레이블과 같은 컨트롤의 내용이 창을 보고 있는 동안 자동으로 업데이트되기를 원할 수 있습니다.

after()를 사용할 수 있습니다. 일정 시간 후에 기능을 실행합니다. 예를 들어 1000밀리초는 1초를 의미합니다. 일정 시간이 지난 후 계속해서 호출되는 함수는 텍스트를 업데이트하거나 원하는 업데이트를 업데이트합니다.

우리 창에 레이블이 있습니다. 레이블 텍스트가 1초 후에 자동으로 업데이트되기를 원합니다. 예를 쉽게 하기 위해 레이블에 0에서 1000 사이의 숫자를 표시하고 싶다고 가정합니다. 이 숫자가 1초마다 변경되기를 원합니다.

레이블의 텍스트를 0에서 1000 사이의 임의의 숫자로 변경하는 함수를 정의하여 이를 수행할 수 있습니다. After()를 사용하여 1초 간격 후에 이 함수를 계속 호출할 수 있습니다.

예시

from Tkinter import *
from random import randint
root = Tk()
lab = Label(root)
lab.pack()

def update():
   lab['text'] = randint(0,1000)
   root.after(1000, update) # run itself again after 1000 ms

# run first time
update()

root.mainloop()

이것은 1000밀리초 후에 레이블의 텍스트를 새로운 숫자로 자동 변경합니다. 필요에 따라 시간 간격을 변경할 수 있습니다. 업데이트 기능을 수정하여 필요한 업데이트를 수행할 수 있습니다.

root.after(1000, 업데이트)

이 코드 줄은 함수 update()를 호출하는 주요 기능을 수행합니다.

root.after()의 첫 번째 매개변수는 함수를 호출할 시간 간격을 밀리초 단위로 지정합니다.

두 번째 매개변수는 호출할 함수의 이름을 지정합니다.