오식랜드
[Python] Tkinter event 종류 본문
반응형
이벤트명
bind() 메서드의 첫번째 파라미터로 사용하는 이벤트명은 문자열로서 <이벤트명> 과 같이 앵글 브래킷으로 묶여 있다.
다음은 자주 사용되는 이벤트명을 예시한 것이다.
- <Button-1> 마우스 왼쪽 버튼 클릭
- <Button-2> 마우스 중간 버튼 클릭
- <Button-3> 마우스 오른쪽 버튼 클릭
- <Double-Button-1> 왼쪽 버튼 더블클릭
- <Return> Enter 키 눌려짐
- <Key> 키가 눌려짐
Event Object
이벤트핸들러(이벤트 콜백)는 event라는 하나의 파라미터를 갖는데, 이는 Tkinter Event Object 로서 다음과 같은 속성(attribute)들을 갖는다. 클릭한 위치값을 나타내는 예제를 보면, click() 함수에서 event 파라미터를 받아들이고, 이 event의 x, y 좌표를 사용하고 있음을 알 수 있다.
- char 키보트 이벤트에서 발생하는 문자 하나
- keysym 키보트 이벤트에서 발생하는 키의 심볼명
- num 마우스 이벤트의 버튼 번호. 왼쪽부터 1, 2, 3
- x, y 위젯의 죄상단으로부터의 상대적 마우스 위치
- x_root, y_root 화면 죄상단으로부터의 상대적 마우스 위치
- Key 이벤트가 발생한 위젯
아래 예제는 Key 이벤트에 대해 keyPressed() 함수를 바인딩하고, 전달된 event.char 를 써서 눌려진 키를 프린트하는 코드이다.
from tkinter import *
def keyPressed(event):
# 키보드 문자하나 출력
print(event.char)
root = Tk()
frame = Frame(root, width=100, height=100)
# Key 이벤트 바인딩
frame.bind('<Key>', keyPressed)
frame.place(x=0, y=0)
# 키보드 포커를 갖게 한다
frame.focus_set()
root.mainloop()
반응형
'dev-log > python' 카테고리의 다른 글
[django] FBV / CBV 방식 (0) | 2023.10.11 |
---|---|
[django] 프로젝트 만들기 요약 (0) | 2023.10.11 |
[Python] Tkinter 이벤트 (0) | 2023.02.18 |
[Python] Tkinter 위젯 종류 (0) | 2023.02.18 |
[Python] Tkinter 시작하기 (0) | 2023.02.18 |
Comments