Tkinter 대화상자

Tkinter 대화상자 (Tkinter dialogs)

이 장은 Tkinter 그래픽 애플리케이션에서 사용하는 다양한 대화상자(dialog) 모듈을 다룹니다. 사용자로부터 값을 얻는 간단한 모달 대화상자부터 파일·디렉터리 선택 창, 고전적 Tk 대화상자까지 포함합니다.

출처: Python documentation

본문

tkinter.simpledialog — 표준 Tkinter 입력 대화상자

tkinter.simpledialog 모듈은 사용자로부터 값을 얻기 위한 간단한 모달 대화상자를 만드는 편의 클래스와 함수를 포함합니다.

주요 함수:

  • tkinter.simpledialog.askfloat(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None) — 부동 소수점 값을 묻습니다.
  • tkinter.simpledialog.askinteger(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None) — 정수 값을 묻습니다.
  • tkinter.simpledialog.askstring(title, prompt, *, initialvalue=None, show=None, parent=None) — 문자열 값을 묻습니다.

class tkinter.simpledialog.Dialog(parent, title=None)은 사용자 지정 대화상자의 기본 클래스입니다. 인스턴스화하면 대화상자가 모달로 표시되고 사용자가 닫으면 반환됩니다. 입력된 값은 result 속성에서 사용할 수 있습니다.

Dialog의 서브클래스에서 오버라이드할 수 있는 메서드:

  • validate() — 사용자가 입력한 데이터를 검증합니다. 유효하면 true를 반환하여 대화상자가 apply()로 진행되고, false를 반환하면 대화상자가 열린 채로 유지됩니다. 기본 구현은 항상 true를 반환합니다.
  • apply() — 사용자가 입력한 데이터를 처리합니다(예: result 속성에 저장). validate()가 성공한 후, 대화상자가 파괴되기 직전에 호출됩니다. 기본 구현은 아무것도 하지 않습니다.
  • destroy() — 대화상자 창을 파괴합니다.

tkinter.filedialog — 파일 선택 대화상자

tkinter.filedialog 모듈은 파일/디렉터리 선택 창을 만드는 클래스와 팩토리 함수를 제공합니다.

네이티브 로드/세이브 대화상자:

  • askopenfilenames() — 선택된 파일 이름의 튜플을 반환하며, 취소하면 빈 튜플을 반환합니다.
  • asksaveasfilename(**options) — SaveAs 대화상자를 만들고 선택된 파일 이름을 문자열로 반환하며, 취소하면 빈 문자열을 반환합니다.
  • askdirectory(**options) — 디렉터리를 선택하도록 요청하고 그 경로를 반환하며, 취소하면 빈 문자열을 반환합니다. 추가 키워드 옵션 mustexist — true이면 사용자가 기존 디렉터리만 선택할 수 있습니다(기본 false).
  • class Open(master=None, **options), class SaveAs(master=None, **options), class Directory(master=None, **options) — 로딩과 세이빙을 위한 네이티브 대화상자 창을 제공하는 세 클래스.

편의 클래스로는 FileDialog(기본 파일 선택 대화상자), LoadFileDialog, SaveFileDialog 등이 있습니다. FileDialog는 커스텀 이벤트 처리와 동작을 위해 서브클래싱해야 합니다. cancel_command(), dirs_double_event(), ok_command(), quit() 등의 메서드를 제공합니다.

tkinter.commondialog — 대화상자 창 템플릿

tkinter.commondialog 모듈은 다른 지원 모듈에서 정의된 대화상자의 기본 클래스인 Dialog 클래스를 제공합니다.

tkinter.dialog — 고전적 Tk 대화상자

tkinter.dialog 모듈은 고전적(테마 없는) Tk 위젯으로 만든 간단한 모달 대화상자를 제공합니다. destroy() 메서드는 아무것도 하지 않는데, 대화상자 창은 생성자가 반환하기 전에 자동으로 파괴되기 때문입니다.

더 알아보기 (Learn more)