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

Tkinter에서 키보드 키를 버튼에 바인딩하는 방법

Tkinter는 위젯이 특정 작업을 수행하도록 바인딩할 수 있는 기능을 제공합니다. 이러한 작업은 함수로 정의되며, 특정 위젯을 통해 호출될 수 있습니다. bind(<button>, function()) 메서드를 사용하면 키보드 키를 바인딩하여 해당 작업을 처리할 수 있으며, 특정 키를 버튼 위젯의 이벤트와 연결하는 것도 가능합니다.

예제 코드

아래 예제는 Enter 키를 눌렀을 때 메시지를 화면에 출력하도록 키 이벤트를 버튼에 바인딩하는 방법을 보여줍니다.

#Import tkinter library
from tkinter import *
from tkinter import ttk

#Create an instance of Tkinter frame or window
win = Tk()

#Set the geometry of tkinter frame
win.geometry("750x250")

def callback():
    Label(win, text="Hello World!", font=('Georgia 20 bold')).pack(pady=4)

#Create a Label and a Button widget
btn = ttk.Button(win, text="Press Enter to Show a Message", command=callback)
btn.pack(ipadx=10)

#Bind the Return(Enter) key to the callback function
win.bind('<Return>', lambda event: callback())

win.mainloop()

코드 설명

  • callback(): 실행될 때마다 윈도우에 "Hello World!"라는 텍스트를 담은 라벨을 새로 추가하는 함수입니다.
  • ttk.Button: 클릭 시 callback 함수가 실행되는 버튼 위젯을 생성합니다.
  • win.bind('<Return>', ...): Enter 키(Return) 입력 이벤트를 감지하여 callback 함수를 호출하도록 바인딩합니다. 이벤트 객체를 전달하기 위해 람다(lambda) 함수를 사용했습니다.

실행 결과

위 코드를 실행하면 버튼 하나가 포함된 윈도우가 화면에 나타납니다.

Tkinter에서 키보드 키를 버튼에 바인딩하는 방법

이후 Enter 키를 누르면 화면에 "Hello World!" 메시지가 표시됩니다.

추가 팁

'<Return>' 외에도 다양한 키를 바인딩할 수 있습니다. 예를 들어 '<space>'(스페이스바), '<Escape>'(ESC 키), '<Key-a>'와 같이 특정 문자 키도 지정할 수 있으므로, 필요에 따라 원하는 키 이벤트를 자유롭게 활용해 보세요.