Python

Tkinter 대화 상자

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

소스 코드: Lib/tkinter/simpledialog.py


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

tkinter.simpledialog.askfloat(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None, use_ttk=True)
tkinter.simpledialog.askinteger(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None, use_ttk=True)
tkinter.simpledialog.askstring(title, prompt, *, initialvalue=None, show=None, parent=None, use_ttk=True)

사용자에게 원하는 유형의 값을 입력하도록 요청하고 이를 반환하며, 대화 상자가 취소되면 None 을 반환합니다.

title 은 대화 상자 제목이고, prompt 는 항목 위에 표시되는 메시지입니다. initialvalue 는 항목에 처음에 입력된 값입니다. parent 는 대화 상자가 표시될 상위 창입니다. askinteger()askfloat() 은 허용 가능한 값의 범위를 제한하는 minvaluemaxvalue 를 추가로 수용합니다. askstring() 은 비밀번호를 숨기기 위해 '*' 과 같이 입력된 텍스트를 마스킹하는 데 사용되는 문자열인 show 도 지원합니다. 이 함수들은 테마가 적용된 tkinter.ttk 위젯을 사용하며, 기본형(classic) 위젯을 사용하려면 use_ttk=False 를 전달하십시오.

class tkinter.simpledialog.Dialog(parent, title=None, *, use_ttk=False)

사용자 정의 대화 상자를 위한 기본 클래스입니다. 이 클래스를 인스턴스화하면 대화 상자가 모달로 표시되며 사용자가 닫으면 종료됩니다. 입력된 값은 이후 result 속성에서 확인할 수 있습니다. use_ttk 가 False(기본값)일 때, 대화 상자는 기존 tk_dialog 를 모델로 한 기본 tkinter 위젯으로 구성됩니다. True인 경우, Tk 메시지 박스를 모델로 한 테마 기반의 tkinter.ttk 위젯을 사용합니다. 테마형 위젯은 기본형 위젯이 body() 에서 추가하는 배경과 일치하지 않을 수 있으므로 호환성을 위해 기본값은 기존 스타일(classic)로 설정되어 있습니다.

버전 3.16.0a0 (unreleased)에서 변경: use_ttk 파라미터가 추가되었습니다.

result

apply() 에 의해 생성된 값이거나, 대화 상자가 취소되면 None 입니다.

body(master)

대화 상자의 인터페이스를 구성하고 초기 포커스가 필요한 위젯을 반환하도록 재정의하십시오.

buttonbox()

기본 동작은 OK 와 Cancel 버튼을 추가합니다. 사용자 정의 버튼 레이아웃이 필요하면 재정의하십시오.

validate()

사용자가 입력한 데이터를 검증합니다. 유효하면 True 를 반환하고 대화 상자가 apply() 로 진행하며, 무효하면 False 를 반환하여 대화 상자를 유지합니다. 기본 구현은 항상 True 를 반환하므로, 입력을 확인하려면 이를 재정의하십시오.

apply()

사용자가 입력한 데이터를 처리합니다(예를 들어 result 어트리뷰트에 저장). validate() 가 성공한 후, 대화 상자가 파괴되기 직전에 호출됩니다. 기본 구현은 아무것도 하지 않으므로, 결과를 처리하거나 저장하려면 이 메서드를 재정의하십시오.

destroy()

대화 상자 창을 파괴하고 초기 포커스가 있던 위젯에 대한 참조를 해제합니다.

class tkinter.simpledialog.SimpleDialog(master, text='', buttons=[], default=None, cancel=None, title=None, class_=None, *, bitmap=None, detail='', use_ttk=True)

buttons 로 지정된 일련의 푸시 버튼 위에 text 메시지를 표시하고 사용자가 누른 버튼의 인덱스를 반환하는 단순한 모달 대화 상자입니다. buttons 의 각 항목은 버튼 레이블이거나, {'text': 'OK', 'underline': 0} 과 같이 버튼 옵션이 매핑된 형태입니다. underline 옵션을 사용하면 Alt 키와 밑줄이 그어진 문자를 함께 눌러 해당 버튼을 실행할 수 있습니다. default 는 포커스가 없는 상태에서 Enter 키를 누르면 활성화되는 기본 버튼의 인덱스이며, cancel 은 윈도우 매니저를 통해 창을 닫을 때 반환되는 인덱스입니다. title 은 창 제목이고, class_ 는 창의 Tk 클래스 이름입니다. bitmap 은 메시지 옆에 표시되는 비트맵의 이름(예: 'warning' 또는 'question')이며, use_ttk 가 True일 때 표준 명칭인 'error', 'info', 'question''warning' 은 테마 아이콘으로 표시됩니다. detailtext 아래에 표시되는 보조 메시지입니다. use_ttk 가 True(기본값)일 때 대화 상자는 Tk 메시지 박스를 모델로 한 테마 기반의 tkinter.ttk 위젯을 사용하여 구성되며, False인 경우 tk_dialog 를 모델로 한 기본 tkinter 위젯을 사용합니다.

버전 3.16.0a0 (unreleased)에서 변경: 이제 대화 상자는 기본형 tkinter 위젯 대신 테마가 적용된 tkinter.ttk 위젯으로 구성됩니다. bitmap, detail, use_ttk 파라미터가 추가되었습니다. buttons 의 항목은 버튼 옵션 맵일 수 있습니다.

go()

대화 상자를 표시하고 사용자가 버튼을 누르거나 창을 닫을 때까지 기다린 후 선택된 버튼의 인덱스를 반환합니다.

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

소스 코드: Lib/tkinter/filedialog.py


tkinter.filedialog 모듈은 파일/디렉터리 선택 창을 생성하기 위한 클래스와 팩토리 함수를 제공합니다.

네이티브 로드/저장 대화 상자

다음 클래스와 함수는 네이티브 모양과 느낌을 동작을 사용자 정의하는 구성 옵션과 결합하는 파일 대화 상자 창을 제공합니다. 다음 키워드 인자는 아래 나열된 클래스와 함수에 적용할 수 있습니다:

parent - 대화 상자를 그 위에 놓을 창
title - 창의 제목
initialdir - 대화 상자가 시작되는 디렉터리
initialfile - 대화 상자를 열 때 선택된 파일
filetypes - (label, pattern) 튜플의 시퀀스, ‘*’ 와일드카드가 허용됩니다
defaultextension - 파일에 추가할 기본 확장자 (저장 대화 상자)
multiple - 참일 때, 여러 항목을 선택할 수 있습니다

정적 팩토리 함수

아래 함수들은 호출될 때 모달 형태의 네이티브 룩앤필(look-and-feel) 대화 상자를 생성하고 사용자의 선택을 기다린 후 이를 반환합니다. 정확한 반환 값은 함수에 따라 다릅니다(아래 참조). 대화 상자가 취소되면 해당 함수에 정의된 빈 값(빈 문자열, 빈 튜플, 빈 리스트 또는 None)이 반환됩니다.

tkinter.filedialog.askopenfile(mode='r', **options)
tkinter.filedialog.askopenfiles(mode='r', **options)

Open 대화 상자를 생성합니다. askopenfile() 은 열린 파일 객체를 반환하며, 취소 시 None 을 반환합니다. askopenfiles() 는 열린 파일 객체들의 리스트를 반환하며, 취소 시 빈 리스트를 반환합니다. 파일은 mode 모드로 열립니다(기본값은 읽기 전용인 'r').

tkinter.filedialog.asksaveasfile(mode='w', **options)

Create a SaveAs dialog and return the opened file object, or None if the dialog is cancelled. The file is opened in mode mode ('w' by default).

tkinter.filedialog.askopenfilename(**options)
tkinter.filedialog.askopenfilenames(**options)

Open 대화 상자를 생성합니다. askopenfilename() 은 선택된 파일명을 문자열로 반환하며, 취소 시 빈 문자열을 반환합니다. askopenfilenames() 는 선택된 파일명들의 튜플을 반환하며, 취소 시 빈 튜플을 반환합니다.

tkinter.filedialog.asksaveasfilename(**options)

SaveAs 대화 상자를 생성하고 선택된 파일명을 문자열로 반환하며, 취소 시 빈 문자열을 반환합니다.

tkinter.filedialog.askdirectory(**options)

사용자에게 디렉터리를 선택하도록 요청하고 경로를 문자열로 반환하며, 취소 시 빈 문자열을 반환합니다. 추가 키워드 옵션: mustexist - 참인 경우, 사용자는 존재하는 디렉터리만 선택할 수 있습니다(기본값은 False).

class tkinter.filedialog.Open(master=None, **options)
class tkinter.filedialog.SaveAs(master=None, **options)

위의 두 클래스는 파일 저장과 로드를 위한 네이티브 대화 창을 제공합니다.

편의 클래스

아래 클래스는 파일/디렉터리 창을 처음부터 만드는 데 사용됩니다. 이것들은 플랫폼의 네이티브 모양과 느낌을 모방하지 않습니다.

class tkinter.filedialog.Directory(master=None, **options)

사용자에게 디렉터리를 선택하라는 대화 상자를 만듭니다.

참고

FileDialog 클래스는 사용자 정의 이벤트 처리와 동작을 위해 서브 클래싱 되어야 합니다.

class tkinter.filedialog.FileDialog(master, title=None, *, use_ttk=True)

기본 파일 선택 대화 상자를 생성합니다. 필터 항목, 나란히 배치된 디렉터리 및 파일 목록, 선택 항목으로 구성된 이 레이아웃은 클래식 Motif 파일 선택 대화 상자를 따릅니다. use_ttk 가 참(기본값)이면 테마가 적용된 tkinter.ttk 위젯으로 대화 상자가 빌드되고, 거짓이면 클래식 tkinter 위젯을 사용합니다.

버전 3.16.0a0 (unreleased)에서 변경: 이제 대화 상자가 클래식 tkinter 위젯 대신 테마가 적용된 tkinter.ttk 위젯으로 기본 빌드됩니다. use_ttk 매개변수가 추가되었습니다.

cancel_command(event=None)

대화 창의 종료를 트리거 합니다.

dirs_double_event(event)

디렉터리에 대한 더블 클릭 이벤트를 위한 이벤트 처리기.

dirs_select_event(event)

디렉터리에 대한 클릭 이벤트를 위한 이벤트 처리기.

files_double_event(event)

파일에 대한 더블 클릭 이벤트를 위한 이벤트 처리기.

files_select_event(event)

파일에 대한 단일 클릭 이벤트를 위한 이벤트 처리기.

filter_command(event=None)

디렉터리로 파일을 필터링합니다.

get_filter()

현재 사용 중인 파일 필터를 가져옵니다.

get_selection()

현재 선택된 항목을 가져옵니다.

go(dir_or_file=os.curdir, pattern='*', default='', key=None)

대화 상자를 렌더링하고 이벤트 루프를 시작합니다.

ok_event(event)

현재 선택을 반환하면서 대화 상자를 종료합니다.

ok_command()

사용자가 현재 선택을 확정할 때 호출됩니다. 기본 구현은 선택을 수락하고 대화 상자를 닫습니다. LoadFileDialogSaveFileDialog 는 선택 사항을 먼저 확인하기 위해 이 메서드를 재정의합니다.

quit(how=None)

파일명을 (있다면) 반환하면서 대화 상자를 종료합니다.

set_filter(dir, pat)

파일 필터를 설정합니다.

set_selection(file)

현재 파일 선택을 file로 갱신합니다.

class tkinter.filedialog.LoadFileDialog(master, title=None, *, use_ttk=True)

기존 파일을 선택하기 위한 대화 상자 창을 만드는 FileDialog의 서브 클래스.

버전 3.16.0a0 (unreleased)에서 변경: use_ttk 파라미터가 추가되었습니다.

ok_command()

파일이 제공되고 선택이 이미 존재하는 파일을 가리키는지 테스트합니다.

class tkinter.filedialog.SaveFileDialog(master, title=None, *, use_ttk=True)

대상 파일을 선택하기 위한 대화 상자 창을 만드는 FileDialog의 서브 클래스.

버전 3.16.0a0 (unreleased)에서 변경: use_ttk 파라미터가 추가되었습니다.

ok_command()

선택이 디렉터리가 아닌 유효한 파일을 가리키는지 테스트합니다. 이미 존재하는 파일을 선택했으면 확인이 필요합니다.

tkinter.commondialog — 대화 상자 템플릿

소스 코드: Lib/tkinter/commondialog.py


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

class tkinter.commondialog.Dialog(master=None, **options)
show(**options)

대화창을 렌더링합니다.

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

소스 코드: Lib/tkinter/dialog.py


tkinter.dialog 모듈은 고전적인(테마가 없는) Tk 위젯을 기반으로 구축된 단순한 모달 대화 상자를 제공합니다.

tkinter.dialog.DIALOG_ICON

Dialog 에 의해 표시되는 기본 비트맵('questhead')의 이름입니다.

class tkinter.dialog.Dialog(master=None, cnf={}, **kw)

고전적인(테마가 없는) Tk 위젯으로 구성된 모달 대화 상자를 표시하고 사용자가 버튼 중 하나를 누를 때까지 기다립니다. cnf 또는 키워드 인수로 전달되는 옵션에는 title (창 제목), text (메시지), bitmap (아이콘, 기본값은 DIALOG_ICON), default (기본 버튼의 인덱스), strings (버튼 레이블 시퀀스)가 포함됩니다. 생성 후, num 어트리브트는 사용자가 누른 버튼의 인덱스를 보유합니다.

destroy()

대화 상자 창을 파괴합니다.

분실물 보관소