본문 바로가기

Python(파이썬)/GUI(graphical user interface)

파이썬 GUI - 메뉴 만들기

파이썬 GUI 티킨더(tkinter) 사용 방법을 모른다면?
파이썬 GUI - 기본틀 만들기

메뉴 만들기

메모장의 메뉴 같은 메뉴 만들기입니다

메모장의 파일, 편집, 서식, 보기, 도움말 등이 위치한 곳으로 클릭을 하면

아래로 또 다른 메뉴가 나오는 방식입니다

메뉴는 Menu 함수를 사용하면 됩니다

메뉴 자체는 기능이 없고 메뉴를 만들고 메뉴에 추가적인 옵션을 생성해야

기능이 있는 메뉴가 됩니다

  1. add_command
  2. add_radiobutton
  3. add_checkbutton
  4. add_separator
  5. add_cascade

이렇게 4가지 종류가 있습니다

add_command는 직접 만든 함수 등을 클릭했을 때 실행될 수 있게 합니다

add_radiobutton는 라디오 버튼입니다

메뉴 중 하나만 선택 가능합니다

add_checkbutton는 체크박스입니다

메뉴 중 여러 개가 선택 가능합니다

add_separator는 구분선입니다 구분을 위한 줄이 표시됩니다

add_cascade는 만든 메뉴들을 메뉴(Menu)에 보여줍니다

 

 

add_command

File 메뉴를 만들고 New File, Save All, Exit을 만들겠습니다

add_command(label='메뉴 이름', command=실행 함수)

add_command 사용해서 New File, Save All, Exit를 만들었습니다

그리고 마지막으로

root.config(menu=menu)를 사용해야 아래와 같이 메뉴가 보입니다

Save All, Exit는 아직 기능이 없습니다 클릭을 해도 반응이 없습니다

New File 클릭 시 "새 파일을 만듭니다."가 print 됩니다

 

 

메뉴 비활성화

보여주기만 하거나 아직 기능 공개를 안 할 경우 클릭을 해도 무반응이어야 하는 메뉴가 있습니다

그럴 때 비활성화(disable)는 방법이 있습니다

state='disable'를 추가하면 추가된 메뉴는 비활성화가 됩니다

GUI 창 닫기

지금까지는 GUI창의 X 버튼을 클릭해서 닫았습니다

Exit 메뉴에 동일한 기능을 넣어서 Exit 클릭하면 GUI 창을 닫게 하는 방법입니다

Save All을 클릭해도 변화가 없습니다

구분선 넣기

GUI 창 닫기

Exit 버튼 클릭 시 종료하는 버튼입니다

quit(Tk(). quit)를 사용합니다

 

Exit 클릭하면 GUI 창이 닫히는 이벤트가 생겼습니다

구분선 넣기

메뉴와 메뉴를 구분하는 구분선을 넣는 방법입니다

메뉴에 밑줄이 생깁니다

 

add_separator() 함수를 사용합니다

메뉴에 넣기

add_cascade를 사용해야 지금까지 만든 메뉴가 화면에 보입니다

메뉴 "File"에 지금까지 만든 New File, Save All, Exit 메뉴를 넣었습니다

라디오 버튼

라디오 버튼(Radiobutton) 함수를 사용하지 않고 add_radiobutton 사용합니다

언어(Language) 메뉴를 만듭니다

 

Python, Java, C++ 3개를 만들고 "언어(Language)" 이름의 메뉴를 만들었습니다

Python, Java, C++ 중에서 어떤 걸 선택해도 한 가지만 선택 가능합니다

라디오 버튼과 같이 여러 선택지 중 하나만 선택 가능합니다

체크박스

체크박스는 라디오 버튼과 마찬가지로 선택을 할 수 있지만 차이점은

한 가지가 아닌 여러 개를 선택할 수 있습니다

체크박스(Checkbutton) 함수를 사용하지 않고 add_checkbutton 사용합니다

Minimap, Breadcrumbs 2개를 만들고 "보기(View)" 이름의 메뉴를 만들었습니다

Minimap, Breadcrumbs 1개를 선택하거나 모두 선택할 수 있습니다

코드