
이 강의는 Tkinter GUI 강의 31강입니다
30강에서는
마우스 클릭 이벤트를
bind로 처리하는 방법을 배웠습니다.
이번 강의에서는
마우스와 함께 가장 많이 사용하는
키보드 입력 이벤트 처리 방법을 다룹니다.
이번 강의의 목표는 분명합니다.
키보드 이벤트가
어떻게 전달되고, 어떤 정보를 가지는지
정확히 이해하는 것입니다.
키보드 이벤트는 언제 발생할까
키보드 이벤트는
사용자가
키를 누르거나 뗄 때 발생합니다.
Tkinter에서는
이 동작을
이벤트 이름으로 구분합니다.
키보드 이벤트 이름 정리
자주 사용하는 키보드 이벤트는 다음과 같습니다.
- <KeyPress> : 키를 누르는 순간
- <KeyRelease> : 키를 뗄 때
- <Key> : KeyPress의 축약형
특정 키만 처리할 수도 있습니다.
- <Return> : Enter 키
- <Escape> : ESC 키
- <Space> : Space 키
가장 기본적인 키보드 이벤트 예제
import tkinter as tk
window = tk.Tk()
window.geometry("300x200")
def on_key(event):
print("키 입력")
window.bind("<Key>", on_key)
window.mainloop()
아무 키나 누르면
함수가 호출됩니다.
키보드 이벤트도 event 객체를 사용한다
키보드 이벤트 역시
bind 방식이기 때문에
event 객체를 받습니다.
def on_key(event):
print(event)
이 객체 안에
어떤 키가 눌렸는지에 대한
정보가 들어 있습니다.
눌린 키 값 확인하기
def on_key(event):
print(event.keysym)
- event.keysym : 키 이름
- event.char : 실제 입력 문자
이 두 가지를
가장 많이 사용합니다.
키 이름과 문자 차이 이해하기
def on_key(event):
print(event.keysym, event.char)
예를 들어
- A 키 → keysym은 "a", char는 "a"
- Shift 키 → keysym은 "Shift_L", char는 빈 값
특수 키는 char가 비어 있을 수 있습니다.
특정 키만 처리하기
특정 키에만
반응하도록 만들 수 있습니다.
window.bind("<Return>", on_enter)
Enter 키 처리 예제
import tkinter as tk
window = tk.Tk()
window.geometry("300x200")
def on_enter(event):
print("Enter 키 입력")
window.bind("<Return>", on_enter)
window.mainloop()
Enter 키를 누를 때만
함수가 실행됩니다.
Entry 위젯에서 키보드 입력 처리하기
키보드 이벤트는
전체 창뿐만 아니라
특정 위젯에도 연결할 수 있습니다.
import tkinter as tk
window = tk.Tk()
window.geometry("300x200")
entry = tk.Entry(window)
entry.pack(pady=40)
def on_key(event):
print(event.char)
entry.bind("<Key>", on_key)
window.mainloop()
Entry에 포커스가 있을 때만
이벤트가 발생합니다.
포커스가 중요하다
키보드 이벤트는
포커스를 가진 위젯이
이벤트를 받습니다.
창 전체에서
항상 키 입력을 받으려면
window에 bind를 걸어야 합니다.
window.focus_set()
키보드 이벤트로 단축키 만들기
키보드 이벤트는
단축키 구현에 자주 사용됩니다.
def on_ctrl_s(event):
print("저장 단축키")
window.bind("<Control-s>", on_ctrl_s)
Ctrl + S 입력 시
함수가 실행됩니다.
키보드 이벤트는 어디에 많이 쓰일까
키보드 이벤트는
다음과 같은 경우에 자주 사용됩니다.
- Enter 키로 확인 처리
- 단축키 구현
- 게임 입력 처리
- 실시간 키 입력 감지
마우스 이벤트와 함께 사용하면
UI 제어가 훨씬 강력해집니다.
키보드 이벤트 처리 시 주의할 점
키보드 이벤트는
입력이 매우 자주 발생합니다.
복잡한 로직을
직접 연결하면
프로그램이 느려질 수 있습니다.
필요한 키만
선별해서 처리하는 것이 좋습니다.
이번 강의 핵심 정리
이번 강의에서 꼭 기억해야 할 내용입니다.
- 키보드 이벤트는 bind로 처리한다
- event.keysym과 event.char를 사용한다
- 특정 키만 선택해서 처리할 수 있다
- 포커스가 이벤트 수신에 중요하다
다음 강의 예고
다음 강의에서는
이벤트 객체(event)의 구조를
한 번 더 깊게 파고듭니다.
이제
이벤트가
정말 “보이기” 시작할 겁니다.
'⚙️ Python > 🪟 Tkinter 기초' 카테고리의 다른 글
| [Tkinter] 33강 엔터 키로 버튼 동작 시키기 (0) | 2026.02.06 |
|---|---|
| [Tkinter] 32강 이벤트 객체(event) 구조 이해하기 (0) | 2026.02.05 |
| [Tkinter] 30강 마우스 클릭 이벤트 처리하기 (0) | 2026.02.04 |
| [Tkinter] 29강 command와 bind 이벤트 차이 이해하기 (0) | 2026.02.04 |
| [Tkinter] 28강 Combobox 선택 값 처리하기 (0) | 2026.02.03 |