728x90

이 강의는 Tkinter GUI 강의 44강입니다
43강에서는
스타일 코드를 UI 코드에서 분리하며
프로그램 구조를 정리했습니다.
이번 강의에서는
GUI 프로그램의 상징과도 같은
메뉴바(Menu Bar) 를 만듭니다.
이번 강의의 목표는 분명합니다.
Menu 위젯의 구조를 이해하고
메뉴가 어떻게 명령(command)을 연결하는지 파악하는 것입니다.
메뉴바는 왜 중요한가
메뉴바가 추가되는 순간
프로그램의 인상이
완전히 달라집니다.
- 단순 창 → 프로그램
- 버튼 중심 → 명령 중심
- 기능 구조가 한눈에 보임
즉,
메뉴바는
프로그램의 기능 지도입니다.
Tkinter 메뉴 구조 한눈에 보기
Tkinter 메뉴는
다음 구조를 가집니다.
MenuBar
├─ Menu (파일)
│ ├─ 명령
│ ├─ 명령
└─ Menu (도움말)
├─ 명령
메뉴바 아래에
여러 개의 메뉴가
달리는 구조입니다.
Menu 위젯 기본 생성 방법
메뉴바는
Menu 객체로 만듭니다.
menu_bar = tk.Menu(window)
window.config(menu=menu_bar)
이 두 줄이
메뉴바의 시작입니다.
메뉴바의 시작입니다.
가장 기본적인 메뉴바 예제
import tkinter as tk
window = tk.Tk()
window.geometry("300x200")
menu_bar = tk.Menu(window)
window.config(menu=menu_bar)
window.mainloop()
아직은
메뉴 항목이
없는 상태입니다.
메뉴(Menu) 추가하기
메뉴바에
실제 메뉴를
하나 추가해 봅니다.
file_menu = tk.Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="파일", menu=file_menu)
- label : 메뉴 이름
- tearoff=0 : 메뉴 분리 방지
메뉴에 명령 추가하기
메뉴의 핵심은
명령입니다.
def open_file():
print("파일 열기")
file_menu.add_command(label="열기", command=open_file)
메뉴 클릭 시
함수가 실행됩니다.
파일 메뉴 전체 예제
import tkinter as tk
window = tk.Tk()
window.geometry("300x200")
def open_file():
print("파일 열기")
def exit_app():
window.quit()
menu_bar = tk.Menu(window)
window.config(menu=menu_bar)
file_menu = tk.Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="파일", menu=file_menu)
file_menu.add_command(label="열기", command=open_file)
file_menu.add_separator()
file_menu.add_command(label="종료", command=exit_app)
window.mainloop()
이제
실제 프로그램처럼
동작합니다.

add_separator로 구분선 추가하기
메뉴 항목 사이에는
구분선을 넣을 수 있습니다.
file_menu.add_separator()
기능 그룹을
시각적으로 나누는 데
아주 유용합니다.
여러 메뉴 추가하기
메뉴바에는
여러 개의 메뉴를
추가할 수 있습니다.
help_menu = tk.Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="도움말", menu=help_menu)
help_menu.add_command(label="정보", command=show_info)
프로그램의
기능 구조가
점점 보이기 시작합니다.
메뉴는 command 방식만 사용한다
중요한 특징 하나입니다.
Menu 위젯은
bind를 사용하지 않습니다.
- 메뉴 클릭 → command 실행
- 이벤트 객체 없음
즉,
메뉴는
“명령 실행”에
특화된 UI입니다.
메뉴 설계 시 사고 방식
메뉴를 설계할 때는
이 기준을 추천합니다.
- 버튼 → 자주 쓰는 기능
- 메뉴 → 기능 묶음
모든 기능을
메뉴로 옮길 필요는 없습니다.
메뉴는 기능 구조를 드러낸다
메뉴를 만들다 보면
이런 질문이 생깁니다.
- 이 기능은 어디에 속하지?
- 이 메뉴 이름이 맞나?
이 고민 자체가
프로그램 구조 설계입니다.
이번 강의 핵심 정리
이번 강의에서 꼭 기억해야 할 내용입니다.
- Menu 위젯으로 메뉴바를 만든다
- 메뉴바 → 메뉴 → 명령 구조다
- add_command로 기능을 연결한다
- 메뉴는 프로그램 구조를 보여준다
다음 강의 예고
다음 강의에서는
서브 메뉴 구성하기를 다룹니다.
메뉴 구조가
한 단계 더
정교해집니다.
728x90
'⚙️ Python > 🪟 Tkinter 기초' 카테고리의 다른 글
| [Tkinter] 46강 메뉴 명령 구조 설계하기 (0) | 2026.02.12 |
|---|---|
| [Tkinter] 45강 서브 메뉴 구성하기 (0) | 2026.02.12 |
| [Tkinter] 43강 스타일 코드 분리하기 (0) | 2026.02.11 |
| [Tkinter] 42강 공통 스타일 설계 방법 (0) | 2026.02.10 |
| [Tkinter] 41강 ttk Label과 Entry 스타일 적용 (0) | 2026.02.10 |