- [Tkinter] after() 함수 사용법 목차
일정한 시간이 지난 후에 특정 함수 또는 메쏘드를 실행시키는 경우에 사용한다.
사용법은
after( 지연시간, 실행할 함수명, 함수에 넘길 인자1, 인자 2,...)
지연 시간은 ms 단위이다.
after_idle(change_img) => event-loop에 대기하는 다른 일이 없을 때, 바로 실행된다.
예 1)
class StartPage(tk.Frame):
....
....
after(1000, change_img) => 1000ms 즉, 1초 후에 change_img가 실행된다.
.....
def change_img(self):
....
after(1000, change_img) => 1000ms 즉, 1초 후에 change_img가 실행된다.
예 2)
class StartPage(tk.Frame):
....
....
after(500, change_img, master) => 500ms 즉, 0.5초 후에 change_img가 실행되며,
change_img()에 master가 인수로 전달된다.
.....
def change_img(self, master):
....
after(500, change_img, master)
기존에 설정된 after( )를 취소하는 방법은
self.new_screen_after = self.after(300, self.write_new_point_screen) <- after의 id를 만들다
self.after_cancel(self.new_screen_after) <- after_cancel( after id)로 작성한다
참고) 여러 Tkinter 위젯에는 사용자 작업에 대해 알려주는 콜백이 없으므로 이러한 작업을 실시간으로 추적하려면 폴링이 유일한 옵션 일 수 있습니다. 예를 들어 다음은 after로 설정된 폴링을 사용하여 실시간으로 Listbox 선택을 추적하는 방법입니다.
F2 = Tkinter.Frame( )
lab = Tkinter.Label(F2)
def poll( ):
lab.after(200, poll)
sel = L.curselection( )
lab.config(text=str(sel))
lab.pack( )
F2.pack(side=Tkinter.TOP)
'python & 라즈베리파이' 카테고리의 다른 글
[Tkinter] command에서 lambda 사용 (0) | 2020.09.21 |
---|---|
Canvas 상에 button 만들기 (0) | 2020.09.21 |
[tkinter] change_img() takes 0 positional arguments but 1 was given (0) | 2020.09.17 |
[tkinter] canvas 이미지 위에 text 출력하기 (0) | 2020.09.14 |
[Tkinter] 화면 전환 (0) | 2020.09.10 |