지난 포스팅
2022.11.20 - [기타/tkinter 한꼬집씩만 따라해보기] - 23. 프레임 안의 위젯들 속성을 일괄변경하기
23. 프레임 안의 위젯들 속성을 일괄변경하기
지난 포스팅 2022.11.20 - [기타/tkinter 한꼬집씩만 따라해보기] - 22. 프레임 위젯 - 위젯들을 묶어주는 위젯 22. 프레임 위젯 - 위젯들을 묶어주는 위젯 지난 포스팅 2022.11.18 - [기타/tkinter 한꼬집씩만
martinii.fun
이번 포스팅에서는 : GUI상단에 메뉴바 붙이기
이번에는 GUI레이아웃에서 굉장히 중요한 파트인 "메뉴바" 만들기입니다.
메뉴바를 만들고 각 메뉴버튼에 커맨드를 붙이기 시작하면
GUI의 코드가 대체로 길어지기 때문에 어느 정도 레이아웃이나 트리구조를 정리해둔 후 작업하시기를 권합니다.
코드를 먼저 보여드리기 전에 메뉴바를 구성하는 순서에 대해서 간략히 설명드리겠습니다.
이해하기보다는 암기하는 느낌으로 읽어보시고, 사용해보시면서 익숙해지시기를 바랍니다.
(지금까지 위젯을 만들고 추가하는 단순한 과정과 비교하면, 아주 조금 더 복잡합니다.)
메뉴바를 만드는 기본적인 순서는 다음과 같습니다.
1. 메뉴바 = tk.Menu로 최상위 메뉴바 위젯을 생성
2. win.config(menu=메뉴바) 로 메뉴바를 붙임 (아무 것도 바뀌지 않음)
3. 파일 = tk.Menu(master=메뉴바) 로 파일메뉴 위젯을 생성 (아직 아무 것도 바뀌지 않음)
4. 메뉴바.add_cascade(menu=파일, label="파일(F)") 로 파일 메뉴버튼을 생성 ("파일" 메뉴가 GUI에 보임)
5. 파일.add_command(command=커맨드, label="새로 만들기(N)") 로 파일메뉴의 하위메뉴 "새로 만들기"를 생성
6.추가로 add_cascade나, add_command 또는 add_separator 등을 수행하여 전체메뉴를 완성
이번 예제에서 따라해볼 메뉴는 지난 포스팅에서도 사용했던 윈도우메모장입니다.

완성된 tkinter GUI를 먼저 보여드리고, 코드를 마지막에 보여드리겠습니다.

tkinter 메뉴도 제법 그럴싸하죠?
아래는 코드입니다.
코드가 다소 길지만, 메뉴버튼이 많아서 그렇지
하나하나씩만 잘라서 보시면 굉장히 간결한 문법에 깜짝 놀라실 겁니다ㅎ
위에 구동되는 움짤과 코드를 대조하면서 코드를 읽어보시면
메뉴바 생성방법에 대해 쉽게 이해하실 겁니다.
부록 : pygubu designer로 메뉴 생성하기
메뉴바를 생성할 때, 이처럼 직접 코딩으로 짜는 방법도 있지만
pygubu designer 같은 위지윅 툴을 사용하면 굉장히 간편히 메뉴바를 포함한 GUI를 생성할 수 있습니다.
특히 메서드나 속성이 궁금한 경우, 디자이너로 GUI를 먼저 생성하고 나서, 만들어진 코드를 참고할 수도 있고요.
pygubu designer로 메뉴바를 만드는 과정 일부를 짧게 한 번 보여드리겠습니다.
1. 아래처럼 틀을 만들고 나서

2. 아래처럼 레이블과 속성을 수정할 수 있습니다.

3. 메뉴작업을 마쳤으면, Code탭의 Code Script를 선택하고, 하단의 Generate를 클릭해보면 파이썬 코드가 나옵니다.

클래스 문법으로 일련의 프로그램이 완성되어 있는데요.

코드 전체를 활용하셔도 되지만,
이 중 필요한 부분만 복사해서 인스턴스명 등 일부만 수정한 후 여러분의 메인코드에 활용하시면 됩니다.
아래처럼요.

짜잔! 순식간에 메뉴바 코드를 완성했습니다.
pygubu-designer에 대해서도 추후에 상세히 다루도록 하겠습니다. (유튜브에도 멋진 튜토리얼이 많이 있습니다.)
아무래도 튜토리얼 후반으로 갈수록 코딩보다는 디자이너를 활용하는 방법을 많이 알려드리고 싶네요.
그게 훨씬 효율적이기도 하니까요. 다만, 기본적인 코드를 이해한 후 디자이너를 쓰시면
훨씬 더 유연하게 디자이너와 코드를 병행해서 활용하실 수 있게 될 겁니다.
이번 포스팅은 여기서 마칩니다.
다음 포스팅
2022.11.20 - [기타/tkinter 한꼬집씩만 따라해보기] - 25. 메뉴바의 종료버튼으로 프로그램 종료하기
25. 메뉴바의 종료버튼으로 프로그램 종료하기
지난 포스팅 2022.11.20 - [기타/tkinter 한꼬집씩만 따라해보기] - 24. 상단에 메뉴바 붙이기 24. 상단에 메뉴바 붙이기 지난 포스팅 2022.11.20 - [기타/tkinter 한꼬집씩만 따라해보기] - 23. 프레임 안의 위
martinii.fun
'GUI 튜토리얼 > tkinter 한꼬집씩만 따라해보기' 카테고리의 다른 글
25. 메뉴바의 종료버튼으로 프로그램 종료하기 (0) | 2022.11.20 |
---|---|
23. 프레임 안의 위젯들 속성을 일괄변경하기 (0) | 2022.11.20 |
22. 프레임 위젯 - 위젯들을 묶어주는 위젯 (0) | 2022.11.20 |
댓글