이전 포스팅
2022.11.20 - [기타/tkinter 한꼬집씩만 따라해보기] - 26. GUI에 탭(Notebook) 생성하기
26. GUI에 탭(Notebook) 생성하기
지난 포스팅 2022.11.20 - [기타/tkinter 한꼬집씩만 따라해보기] - 25. 메뉴바의 종료버튼으로 프로그램 종료하기 25. 메뉴바의 종료버튼으로 프로그램 종료하기 지난 포스팅 2022.11.20 - [기타/tkinter 한
martinii.fun
이번 포스팅에서는 : 다양한 메시지박스 생성하기
가장 기본적인 메시지박스를 만드는 방법부터 알아봅시다.
메인윈도우 창도 master나 parent 파라미터도 필요없고, mainloop()을 실행할 필요도 없이
창 하나만 띄워주는 코드들입니다.
GUI가 거의 필요없는 업무자동화 코드라고 하더라도
파일목록을 선택하는 다이얼로그는 필요한 경우가 많이 있지요.
임포트문을 제외하면 딱 한 줄의 명령어입니다.
실행해볼까요?

간단하게 Message 인스턴스를 생성하고, show() 메서드로 창을 띄웠습니다.
창 안에 나타난 파란 i 모양의 아이콘은 icon 인자의 파라미터로 기본값은 icon="info" 이며,
"info", "warning", "error", "question" 네 개 중 하나를 선택할 수 있습니다.
또한 parent=None 파라미터는 생략 가능한데,
다른 위젯들의 첫 번째 파라미터가 master인 데 반해,
메시지박스는 일반적으로 상위위젯이나 메인윈도우를 선택할 때
master 대신 parent 인자로 입력합니다.
메시지박스에는 이밖에도 여러 가지 심플한 다이얼로그를 기본으로 제공하고 있는데,
몇 가지만 더 보여드리겠습니다. 필요한 곳에 활용하시면 되겠습니다.
아래의 다섯 개 다이얼로그는 창을 띄우기 위한 show() 메서드가 필요없습니다.
1. askquestion ("yes" or "no")

2. askyesno (True or False)

3. askyesnocancel (True or False or None)

4. askokcancel (True or False)

5. askretrycancel (True or False)

위의 다이얼로그들은 버튼선택결과를 문자열 또는 불리언값으로 리턴하므로
아래처럼 결과값을 변수에 담아서 이후 프로세스를 진행할 수 있습니다.

파일/폴더를 고르는 다이얼로그
이밖에도 tkinter.filedialog에서는 파일/폴더를 선택하기 위한 다양한 기본 다이얼로그를 제공하고 있습니다.
1. 한 개의 파일을 고르는 다이얼로그 : askopenfilename

2. 여러 개의 파일을 고르는 다이얼로그 : askopenfilenames

이밖에도 askdirectory나 saveasfilename 등 여러 가지 다이얼로그가 제공되고 있습니다.
다이얼로그를 메인윈도우에 포함시키려면?
위의 다이얼로그 창을 메인윈도우 메뉴 커맨드를 통해 여는 간단한 예제를 보여드리겠습니다.
메뉴바에 "도움말 - About" 이라는 메뉴를 만들고, About을 클릭하면 다이얼로그창이 열리는 예제입니다.
실행해보면

의도한 대로 잘 실행되네요.
마지막으로, 입력값을 받는 tkinter.simpledialog
tkinter에서는 버튼만 누르는 다이얼로그창이 아니라,
정수, 문자열 및 실수를 입력받을 수 있는 다이얼로그도 (다행히) 기본제공하고 있습니다.
(물론 이를 프레임 안에 넣어서 직접 제작하는 것도 가능하지만, 다소 번거로운 일입니다.)
1. 문자열을 입력받는 다이얼로그 : askstring

2. 정수를 입력받는 다이얼로그 : askinteger

3. 실수를 입력받는 다이얼로그 : askfloat

마치며
tkinter에서 다이얼로그 창을 생성하는 기본적인 방법을 알려드렸습니다.
tkinter.messagebox, tkinter.filedialog 및 tkinter.simpledialog에서 제공하는 다이얼로그 중 일부를 보여드렸지만,
이밖에도 tkinter에서 제공하는 여러 클래스를 통해 다양한 다이얼로그를 직접 조합하여 제작할 수도 있습니다.
블로그에 댓글이나 방명록으로 질문 남겨주시면 제 역량 내에서 성의껏 답변 드리도록 하겠습니다.
tkinter는 업데이트를 거듭하면서 다른 유명한 GUI프레임워크인 PyQt나 wxPython 등에 뒤지지 않을 정도로
다양한 위젯과 다이얼로그를 기본제공하고 있습니다. 게다가 코드도 굉장히 간단합니다.
조금 더 깊이 공부하고자 하시는 분은 파이썬 공식문서 중 tkinter 파트를 참고하시거나,
유튜브의 다양한 튜토리얼을 검색해 보시면 좋겠습니다. (재미있게도 인도 유튜버가 가장 많은 것 같습니다.)
다음 포스팅
2022.11.28 - [기타/tkinter 한꼬집씩만 따라해보기] - 28. 메인윈도우에 아이콘 추가하기
28. 메인윈도우에 아이콘 추가하기
이전 포스팅 2022.11.27 - [기타/tkinter 한꼬집씩만 따라해보기] - 27. 다양한 메시지박스 생성하기 27. 다양한 메시지박스 생성하기 이전 포스팅 2022.11.20 - [기타/tkinter 한꼬집씩만 따라해보기] - 26. GUI
martinii.fun
'GUI 튜토리얼 > tkinter 한꼬집씩만 따라해보기' 카테고리의 다른 글
28. 메인윈도우에 아이콘 추가하기 (0) | 2022.11.28 |
---|---|
26. GUI에 탭(Notebook) 생성하기 (0) | 2022.11.20 |
25. 메뉴바의 종료버튼으로 프로그램 종료하기 (0) | 2022.11.20 |
댓글