블로그 이미지
조이키트 블로그
아두이노, 라즈베리파이, 반도체 센서/모듈 활용

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

250x250
2024. 1. 2. 19:52 파이썬 GUI
728x90
반응형

여기서는 메인 윈도우에 메뉴바를 추가하고 메뉴 막대에 메뉴항목을 추가한다.

 

맥북에서 메뉴바가 만들어진 모습

 

전체코드

import tkinter as tk      
from tkinter import ttk  # ttk를 임포트 함
from tkinter import scrolledtext
from tkinter import Menu

win = tk.Tk()  # Tk 클래스의 인스턴스 생성
win.title("메뉴바 만들기")   # 제목을 설정하기 위한 인스턴스 변수 사용

# 메뉴바 생성하기
menu_bar = Menu(win)
win.config(menu=menu_bar)

def _quit():
    win.quit()
    win.destroy()
    exit()

# 메뉴를 생성하고 메뉴 아이템 추가하기
file_menu = Menu(menu_bar, tearoff=0)
file_menu.add_command(label="New")
file_menu.add_separator()
file_menu.add_command(label="Exit", command=_quit)
menu_bar.add_cascade(label="File", menu=file_menu)

help_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="Help", menu=help_menu)
help_menu.add_command(label="About")

win.mainloop()

 

동작원리 

먼저 tkinter에서 Menu 클래스를 임포트해야 한다.

from tkinter import Menu

 

다음 메뉴바를 만든다. 

menu_bar = Menu(win)

Menu 모듈 클래스의 생성자를 호출하고 메인 GUI 인스턴스인 win을 전달한다. Menu 객체의 인스턴스를 menu_bar 변수에 저장한다.

win.config(menu=menu_bar)

다음 메뉴바에 메뉴 항목들을 배치한다. 여기서는 File에는 New, Exit를 나열하였고, Help메뉴에는 About항목을 나열하였다.

file_menu = Menu(menu_bar, tearoff=0)
file_menu.add_command(label="New")
file_menu.add_separator()
file_menu.add_command(label="Exit", command=_quit)
menu_bar.add_cascade(label="File", menu=file_menu)

help_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="Help", menu=help_menu)
help_menu.add_command(label="About")

 

Exit 항목에 _quit 함수를 사용해 클릭시 창이 닫기게 한다.

def _quit():
    win.quit()
    win.destroy()
    exit()

 

728x90
반응형
posted by 조이키트 블로그