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

Tkinter에서 Escape 키를 눌러 창을 닫는 방법 – bind() 함수 활용 가이드

Tkinter 이벤트는 애플리케이션을 인터랙티브하고 실용적으로 만드는 데 매우 유용한 기능입니다. 사용자가 클릭이나 키 입력을 수행할 때 애플리케이션의 내부 기능과 상호작용할 수 있는 통로를 제공하며, 특정 동작이 발생하는 순간 원하는 작업을 자동으로 실행할 수 있게 해줍니다.

Tkinter에서 이벤트를 등록하려면 일반적으로 bind('Button', callback) 메서드를 사용합니다. 이 메서드를 활용하면 어떤 키든 특정 작업이나 이벤트에 자유롭게 연결할 수 있습니다. Esc 키를 눌렀을 때 애플리케이션 창이 닫히도록 설정하려면, bind(key, callback) 메서드에 해당 키와 콜백 함수를 매개변수로 전달하기만 하면 됩니다.

예제 코드

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

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

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

# 콤보박스 위젯 스타일 정의
style = ttk.Style()
style.theme_use('xpnative')

# 창을 닫는 이벤트 함수 정의
def close_win(e):
    win.destroy()

# 라벨 위젯 추가
label = ttk.Label(win, text="Eat, Sleep, Code and Repeat", font=('Times New Roman italic', 18), background="black", foreground="white")
label.place(relx=.5, rely=.5, anchor=CENTER)
ttk.Label(win, text="Now Press the ESC Key to close this window", font=('Aerial 11')).pack(pady=10)

# ESC 키를 콜백 함수와 바인딩
win.bind('', lambda e: close_win(e))

win.mainloop()

실행 결과

위 코드를 실행하면 하나의 창이 화면에 나타나며, 키보드의 "Esc" 키를 누르는 즉시 해당 창이 닫힙니다.

Tkinter에서 Escape 키를 눌러 창을 닫는 방법 – bind() 함수 활용 가이드

이제 <Esc> 키를 눌러 창을 직접 닫아 보세요. 이처럼 bind() 메서드를 활용하면 Esc 키 외에도 Enter, F1, 방향키 등 다양한 키 입력에 원하는 동작을 손쉽게 연결할 수 있습니다.