Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter 키 누름(KeyPress)과 키 놓음(KeyRelease) 이벤트 완벽 가이드

Tkinter에서 이벤트(Event)는 사용자와 애플리케이션 로직 사이를 연결하는 다리 역할을 하는 인터페이스입니다. 어떤 Tkinter 애플리케이션이든 이벤트를 활용하면 더욱 인터랙티브하고 실용적인 프로그램을 만들 수 있습니다.

특히 <KeyPress><KeyRelease> 이벤트는 키보드의 키를 누르거나 놓는 순간에만 특정 함수를 호출하도록 만들 때 사용합니다. 이 두 이벤트를 bind() 메서드로 위젯에 연결하면, 키 입력에 즉각 반응하는 반응형 UI를 손쉽게 구현할 수 있습니다.

예제: 키 입력에 반응하는 메시지 표시하기

다음 예제에서는 키를 누를 때마다 화면에 환영 메시지를 표시하고, 해당 키를 놓으면 원래 안내 문구로 되돌아가는 스크립트를 작성해 보겠습니다.

# 필요한 라이브러리 임포트
from tkinter import *

# tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()

# 윈도우 크기 설정
win.geometry("700x350")

# 메시지를 표시할 함수 정의
def key_press(e):
    label.config(text="Welcome to TutorialsPoint")

def key_released(e):
    label.config(text="Press any Key...")

# 텍스트를 담을 레이블 위젯 생성
label = Label(win, text="", font=('Helvetica 17 bold'))
label.pack(pady=50)

# 키 이벤트 바인딩
win.bind('', key_press)
win.bind('', key_released)
win.mainloop()

실행 결과

위 코드를 실행하면 레이블이 하나 배치된 윈도우가 나타납니다.

Tkinter 키 누름(KeyPress)과 키 놓음(KeyRelease) 이벤트 완벽 가이드

키보드에서 아무 키나 누르면 화면에 환영 메시지가 표시되고, 키를 떼는 순간 메시지가 "Press any Key..."로 갱신됩니다.

Tkinter 키 누름(KeyPress)과 키 놓음(KeyRelease) 이벤트 완벽 가이드

핵심 포인트 정리

bind() 메서드: 위젯에 이벤트와 콜백 함수를 연결합니다. 첫 번째 인자로 이벤트 문자열, 두 번째 인자로 호출할 함수를 전달합니다.

<KeyPress>: 키를 누르는 순간 발생하는 이벤트입니다.

<KeyRelease>: 눌렀던 키를 놓는 순간 발생하는 이벤트입니다.

config() 메서드: 이미 생성된 위젯의 속성(여기서는 레이블의 텍스트)을 동적으로 변경할 때 사용합니다.

이처럼 키 이벤트 바인딩은 게임 조작, 단축키 구현, 실시간 입력 감지 등 다양한 상황에서 활용할 수 있는 Tkinter의 기본적이면서 강력한 기능입니다.