[2일차] 공부내용 정리
12. 메뉴
13. 메시지 박스
14. 프레임
15. 스크롤 바
16. 그리드 기본
17. 그리드 심화
18. 퀴즈 (메모장 만들기)
12. 메뉴
from tkinter import *
root = Tk()
root.title("WT GUI")
root.geometry("640x480") # 가로 X 세로 / 대문자X 하면 실행안됨
def create_new_file():
print("새 파일을 만듭니다.")
menu = Menu(root)
# File 메뉴
menu_file = Menu(menu, tearoff=0)
menu_file.add_command(label="New File", command=create_new_file)
menu_file.add_command(label="New Window")
menu_file.add_separator()
menu_file.add_command(label="Open File...")
menu_file.add_separator()
menu_file.add_command(label="Save All", state = "disable") # 비활성화
menu_file.add_separator()
menu_file.add_command(label="Exit", command = root.quit) # 비활성화
menu.add_cascade(label="File", menu=menu_file)
# Edit 메뉴 (빈값)
menu.add_cascade(label="Edit")
# Language 메뉴 추가 (radio 버튼을 택해서 택1)
menu_lang = Menu(menu, tearoff=0)
menu_lang.add_radiobutton(label="Python")
menu_lang.add_radiobutton(label="Java")
menu_lang.add_radiobutton(label="C++")
menu.add_cascade(label="Language", menu=menu_lang)
# View 메뉴 (Checkbox)
menu_view = Menu(menu, tearoff=0)
menu_view.add_checkbutton(label="Show Minimap")
menu.add_cascade(label="View", menu=menu_view)
root.config(menu=menu)
root. mainloop()
주의사항
- menu = Menu(root)
: munu 항목 변수 선언 , Menu(root) 와 같이 대소문자 구별하여 변수 사용되어야 함.
- menu_file = Menu(menu, tearoff=0)
: 메뉴 이름 = Menu(menu, 파라미터1, 파라미터2, ...) 의 형태로 메뉴 항목 사용
- menu_file.add_command(label="New File", command=create_new_file)
menu_file.add_command(label="New Window")
: add_command 를 통해 하위 항목의 추가 및 command를 부여할 수 있다.
- menu_file.add_separator()
: 동일 메뉴안에서 구분자 표시
- menu_file.add_command(label="Save All", state = "disable") # 비활성화
: state = "disable" 로 설정할 경우 해당 버튼의 상태가 비활성화 된다.
- menu.add_cascade(label="File", menu=menu_file)
: 상위메뉴와 하위메뉴를 연결(해당 cascade 선언이 안될 경우 해당 항목이 실행창에서 나타나지 않음)
- menu_lang = Menu(menu, tearoff=0)
menu_lang.add_radiobutton(label="Python")
menu_lang.add_radiobutton(label="Java")
menu_lang.add_radiobutton(label="C++")
menu.add_cascade(label="Language", menu=menu_lang)
: 메뉴 항목에서 radiobutton(택 1을 할 경우 사용) 사용 가능
- menu_view = Menu(menu, tearoff=0)
menu_view.add_checkbutton(label="Show Minimap")
menu.add_cascade(label="View", menu=menu_view)
: 메뉴 항목에서 Checkbox 사용 가능
- root.config(menu=menu)
: 실행 창(root)에서 해당 항목을 추가하여야 메뉴바가 나타남
: 윈도우창.config(menu=메뉴이름) 형태로 사용
실제 파라미터가 뭔가 종류가 많다...
사용법은 어렵지 않아 보이나 상황에 맞게 쓸 수 있어야 할 것 같다.
이름의미
add_command(파라미터) | 기본 메뉴 항목 생성 |
add_radiobutton(파라미터) | 라디오버튼 메뉴 항목 생성 |
add_checkbutton(파라미터) | 체크버튼 메뉴 항목 생성 |
add_cascade(파라미터) | 상위 메뉴와 하위 메뉴 연결 |
add_separator() | 구분선 생성 |
add(유형, 파라미터) | 특정 유형의 메뉴 항목 생성 |
delete(start_index, end_index) | start_index부터 end_index까지의 항목 삭제 |
entryconfig(index, 파라미터) | index 위치의 메뉴 항목 수정 |
index(item) | item 메뉴 항목의 index 위치 반환 |
insert_separator (index) | index 위치에 구분선 생성 |
invoke(index) | index 위치의 항목 실행 |
type(속성) | 선택 유형 반환 (command, radiobutton, checkbutton, cascade, separator, tearoff) |
이름의미기본값속성
relief | 메뉴의 테두리 모양 | flat | flat, groove, raised, ridge, solid, sunken |
background=bg | 메뉴의 배경 색상 | SystemButtonFace | color |
foreground=fg | 메뉴의 문자열 색상 | SystemButtonFace | color |
selectcolor | 하위 메뉴의 선택 표시(√) 색상 | SystemWindow | color |
이름의미기본값속성
font | 메뉴의 문자열 글꼴 설정 | TkDefaultFont | font |
cursor | 메뉴의 마우스 커서 모양 | - | * 커서 속성(최하단 확인) |
이름의미기본값속성
activeborderwidth | active 상태일 때 메뉴의 테두리 두께 | 1 | 상수 |
activebackground | active 상태일 때 메뉴의 배경 색상 | SystemHighlight | color |
activeforeground | active 상태일 때 메뉴의 문자열 색상 | SystemButtonText | color |
disabledforeground | disabeld 상태일 때 메뉴의 문자열 색상 | SystemDisabledText | color |
이름의미기본값속성
postcommand | 메뉴가 선택되었을 때 실행하는 메소드(함수) | - | 메소드, 함수 |
tearoff | 하위메뉴의 분리 기능 사용 유/무 | False | Boolean |
title | 하위메뉴의 분리 기능의 제목 | - | 문자열 |
tearoffcommand | 메뉴의 위젯 일치화 여부 | - | 메소드, 함수 |
menu option 관련 참고 자료 :
https://076923.github.io/posts/Python-tkinter-8/
[Python 파이썬 독학 활용2편 2일차] GUI(tkinter) - 2-3 (0) | 2021.08.01 |
---|---|
[Python 파이썬 독학 활용2편 2일차] GUI(tkinter) - 2-2 (0) | 2021.08.01 |
[Python 파이썬 독학 활용2편 1일차] GUI(tkinter) - 1-3 (0) | 2021.07.30 |
[Python 파이썬 독학 활용2편 1일차] GUI(tkinter) - 1-2 (0) | 2021.07.29 |
[Python 파이썬 독학 활용2편 1일차] GUI(tkinter) - 1-1 (0) | 2021.07.29 |
댓글 영역