본문 바로가기
Python/Tkinter

[Tkinter] 18. 이벤트 바인딩 Event Binding

by 파인스코어 2024. 2. 22.
728x90

Tkinter의 이벤트 바인딩

커맨드 바인딩은 command 옵션을 제공하는 일부의 위젯에서만 가능하다. 이 외의 위젯에서도 이벤트 처리가 필요할 수 있다. 이를 위해 사용하는 것이 이벤트 바인딩이다.

Tkinter는 bind() 함수를 제공하여 커맨드 바인딩이 되지 않는 위젯에 대한 이벤트 처리를 가능하게 만들어 준다.

bind 함수

일반적은 문법은 다음과 같다.

widget.bind(event, handler)

widget에서 event에 지정한 이벤트가 발생하면 handler에 지정한 함수가 실행된다.

이벤트 패턴

Tkinter는 이벤트 패턴을 사용해 이벤트를 정의한다.

일반적인 패턴은 다음과 같다. 0개 이상의 modifier, type, detail의 조합으로 구성된다.

<modifier-type-detail>

modifier, type, detail의 자세한 목록은 https://tcl.tk/man/tcl8.6/TkCmd/bind.htm를 참고하자.

root 창에서의 이벤트 바인딩

위젯뿐만 아니라 root와 같은 top-level 창에서도 이벤트 바인딩이 가능하다.

root.bind(event, handler)

클래스 레벨 바인딩

같은 유형의 위젯끼리 묶어서 이벤트 바인딩이 가능하다.

bind_class() 함수를 사용한다.

root.bind_class(widget, event, handler)

언바인딩

때때로 바인딩을 해제해야 할 상황이 생길 수 있다.

언바인딩을 하기 위해서는 unbind() 함수를 사용하면 된다.

widget.unbind(event)

참고

https://www.pythontutorial.net/tkinter/tkinter-event-binding/

 

728x90