드롭다운 메뉴(Dropdown Menu)는 애플리케이션 상단의 메뉴 바에 세로로 나열된 메뉴 항목들의 목록입니다. Tkinter 애플리케이션에서는 Menu() 객체를 생성하여 메뉴 바를 만들 수 있으며, 모든 메뉴 항목은 이 객체 안에 포함됩니다.
마우스 대신 키보드 단축키를 사용해 메뉴를 선택하고 각종 작업을 수행하고 싶은 경우가 있습니다. 이럴 때는 bind_all(<Key>, callback) 메서드를 사용하여 특정 키를 메뉴 전체에 바인딩할 수 있습니다.
예제 코드
아래 예제는 여러 메뉴 항목을 포함하는 애플리케이션 창을 생성합니다. 사용자가 <Ctrl + Q> 키 조합을 누르면 메인 창이 종료됩니다.
#Import the required libraries
from tkinter import *
#Create an instance of Tkinter Frame
win = Tk()
#Set the geometry
win.geometry("750x350")
def exit():
win.destroy()
#Create a Menu Bar
menubar= Menu()
filemenu= Menu(menubar, tearoff=False)
menubar.add_cascade(label= "File",underline=0, menu= filemenu)
filemenu.add_command(label="1.a", underline= 1)
filemenu.add_command(label="2.b", underline= 1)
filemenu.add_command(label="3.c", underline= 1)
filemenu.add_command(label="Quit", underline= 1, command= exit, accelerator= "Ctrl+Q")
win.config(menu= menubar)
filemenu.bind_all("<Control-q>", exit)
win.mainloop()실행 결과
위 코드를 실행하면 메뉴 바와 그 안의 메뉴 항목들이 표시된 창이 나타납니다.

이제 메뉴에서 "Quit" 항목을 클릭하거나 <Ctrl + Q> 키를 누르면 메인 창이 닫히는 것을 확인할 수 있습니다.
핵심 정리
- Menu(): Tkinter에서 메뉴 바와 드롭다운 메뉴를 생성하는 기본 위젯입니다.
- add_cascade(): 메뉴 바에 최상위 메뉴(예: File)를 추가합니다.
- add_command(): 드롭다운 메뉴에 개별 명령 항목을 추가합니다.
- accelerator: 메뉴 항목 옆에 단축키 표시(예: Ctrl+Q)를 보여주는 옵션입니다.
- bind_all("<Control-q>", callback): 애플리케이션 전체에서 해당 키 입력을 감지하여 콜백 함수를 실행합니다.