반응형

  GUI에서 가장 기본 되는 Menu를 생성하는 방법과 버튼에 추가 메뉴가 달리는 Menubutton를 생성하는 방법에 대해서 살펴보고자 합니다.

  • GUI 어플리케이션에서 메뉴바(menu bar)는 흔하게 사용됩니다.
  • 다양한 명령들의 모음이 메뉴바에 위치합니다.

 

파이썬 위젯 - 메뉴바 만들기

  대부분 GUI기반의 툴을 사용하다 보면, File, Edit, Help등의 메뉴로 구성되는 윈도우 상단에 있는 메뉴들을 볼 수가 있습니다. 이런 메뉴를 생성할 수 있는 방법은 다음과 같습니다.

w = Menu ( master, option, ... )

 

▶ 메뉴바 옵션

파이썬 위젯 - 메뉴바 만들기

 

[ 파이썬 위젯 메뉴바 만들기 예제 1 ]

from tkinter import *
from tkinter import filedialog
 
win = Tk() 
win.geometry('300x200')
win.title("메뉴바 만들기")

def open():
    print(filedialog.askopenfilename(initialdir = "/",
               title = "Open file",filetypes = (("Python files","*.py;*.pyw"),
               ("All files","*.*"))))

def save():
    print(filedialog.asksaveasfilename(initialdir = "/",
              title = "Save as",filetypes = (("Python files","*.py;*.pyw"),
              ("All files","*.*"))))

def test():
    print("파이썬 메뉴바 공부중....")

def close():
    win.quit()  #위젯을 유지한 채 mainloop() 이후 코드를 실행한다.
    win.destroy()  #위젯을 제거한 채 mainloop() 이후 코드를 실행한다.

#메뉴바를 만듭니다.  
menubar = Menu(win)

filemenu = Menu(menubar, tearoff=0)                 # 상위 메뉴 탭 항목 추가
menubar.add_cascade(label="파일", menu=filemenu)    # 상위 메뉴 탭 설정
filemenu.add_command(label="새파일", command=test)   # 항목 추가
filemenu.add_command(label="열기", command=open)
filemenu.add_command(label="저장하기", command=save)
filemenu.add_command(label="새 이름으로...", command=test)
filemenu.add_separator()                            # 분리선 추가
filemenu.add_command(label="끝내기", command=close)

editmenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="편집", menu=editmenu)
editmenu.add_command(label="복사하기", command=test)
editmenu.add_command(label="붙여넣기", command=test)
editmenu.add_separator()
editmenu.add_command(label="삭제하기", command=test)

helpmenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="도움말", menu=helpmenu)
helpmenu.add_command(label="About...", command=test)

# 생성된 객체를 위에서 생성된 메뉴바에 연결합니다.
# 윈도우창에 메뉴를 등록한다.
win.config(menu=menubar)                   
win.mainloop()

 

 

반응형
Posted by 명문코딩컴퓨터
,