일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- win32com
- 문자열
- pyqt5
- 파이썬GUI
- 파이썬
- 윈도우11
- 깃
- git
- python3
- python
- windows
- 파워포인트
- 오피스
- office
- matlab
- 윈도우10
- Windows10
- Outlook
- VBA
- Windows11
- Android
- 파이썬3
- 비주얼베이직
- pythongui
- Excel
- 안드로이드
- html
- 엑셀
- 아웃룩
- pandas
Appia의 IT세상
파이썬[Python] 025 tkinter 기본강의 005 Menu, Menubutton 본문
오늘 포스팅에서는 GUI에서 가장 기본 되는 Menu를 생성하는 방법과 버튼에 추가 메뉴가 달리는 Menubutton를 생성하는 방법에 대해서 살펴보고자 합니다.
Menu
대부분 GUI기반의 툴을 사용하다 보면, File, Edit, Help등의 메뉴로 구성되는 윈도우 상단에 있는 메뉴들을 볼 수가 있습니다. 이런 메뉴를 생성할 수 있는 방법은 다음과 같습니다.
w = Menu ( master, option, ... ) |
여기에서 몇가지 옵션들에 대해서 살펴봐야 합니다.
- Add_cascade() - 상위 메뉴 탭에 대한 설정
- Add_command() - 상위 메뉴 버튼에 대한 항목 추가
- Add_separator() - 분리 선 추가
그럼 다음 예시를 살펴보겠습니다.
from tkinter import *
def domenu():
print("OK")
root = Tk()
menubar = Menu(root) # 윈도우에 메뉴바 추가
filemenu = Menu(menubar, tearoff=0) # 상위 메뉴 탭 항목 추가
menubar.add_cascade(label="File", menu=filemenu) # 상위 메뉴 탭 설정
filemenu.add_command(label="New", command=domenu) # 항목 추가
filemenu.add_command(label="Open", command=domenu)
filemenu.add_command(label="Save", command=domenu)
filemenu.add_command(label="Save as...", command=domenu)
filemenu.add_separator() # 분리선 추가
filemenu.add_command(label="Exit", command=root.quit)
editmenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Edit", menu=editmenu)
editmenu.add_command(label="Copy", command=domenu)
editmenu.add_command(label="Paste", command=domenu)
editmenu.add_separator()
editmenu.add_command(label="Delete", command=domenu)
helpmenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Help", menu=helpmenu)
helpmenu.add_command(label="About...", command=domenu)
root.config(menu=menubar) # 생성된 객체를 위에서 생성된 메뉴바에 연결
root.mainloop()
위의 명시된 3가지 옵섭이 주요 사용되었습니다. 전체적인 흐름을 보면 윈도우에 메뉴바를 추가 하였습니다. 그리고, 위젯 중 하나인 메뉴를 생성하였습니다. 여기에는 총 3가지 탭(File, Edit, Help)로 구성됩니다. 여기에 생성한 각 객체를 앞서 윈도우에 생성한 메뉴바에 추가 합니다. 이러한 순서로 됩니다.
위의 예시를 실행하면 다음과 같은 결과가 나옵니다.
Menubutton
Menubutton의 경우, 메뉴바와 달리 버튼에 메뉴가 표시되게 하는 방법입니다. 저의 경우는 많이 사용하지는 않지만, 여러가지 동작을 한번에 실행하는 버튼과 별개로 각각의 행동을 수행하게 하는 버튼을 만들 때에 유용하게 사용할 수 있습니다. 대부분의 Option은 앞서 Menu에서 사용한 부분과 같습니다. 그래서 간단한 문법과 예시만 살펴 보도록 하겠습니다.
w = Menubutton ( master, option, ... ) |
다음과 같은 예제를 한번 만들어 봤습니다.
from tkinter import *
root = Tk()
mb = Menubutton(root, text="MenuButton")
mb.grid()
mb.menu = Menu(mb, tearoff=0)
mb["menu"] = mb.menu
mb.menu.add_checkbutton(label="Cat")
mb.menu.add_checkbutton(label="Dog")
mb.pack()
root.mainloop()
위의 부분을 실행하면 다음과 같은 결과가 나옵니다. 실행 후에 MenuButton을 클릭한 것입니다.
오늘은 간단하게 Menu와 MenuButton을 생성하는 방법에 대해서 살펴봤습니다. 실제 Menu같은 경우에 상당히 많이 사용하는 부분입니다. 관련해서 활용도가 높을 것이라고 생각합니다.
'Python > Python Tk (GUI)' 카테고리의 다른 글
파이썬[Python] 027 tkinter 기본강의 007 Scale, scrollbar (1) | 2020.01.03 |
---|---|
파이썬[Python] 026 tkinter 기본강의 006 Message, Radiobutton (0) | 2020.01.02 |
파이썬[Python] 024 tkinter 기본강의 004 Frame, Label, Listbox (0) | 2020.01.01 |
파이썬[Python] 023 tkinter 기본강의 003 checkbutton, Entry (0) | 2020.01.01 |
파이썬[Python] 022 tkinter 기본강의 002 pack(), grid(), place() (6) | 2019.12.31 |