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 위젯을 사용하며, 클래식 위젯을 사용하려면 use_ttk=False 를 전달하십시오.

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

사용자 정의 대화 상즈를 위한 베이스 클래스입니다. 인스턴스화하면 대화 상자를 모달로 표시하며 사용자가 닫으면 반환하고, 입력된 값은 result 속성에서 사용할 수 있습니다. use_ttk 가 거짓(기본값)일 때 대화 상자는 클래식 tk_dialog 를 모델로 한 클래식 tkinter 위젯으로 구축되며, 참일 때도는 Tk 메시지 박스를 모델로 한 테마 기반 tkinter.ttk 위젯으로 구축됩니다. 테마 위젯은 body() 에서 추가되는 클래식 위젯과 일치하지 않는 테마 배경을 설정하므로 호환성을 위해 기본값은 클래식으로 설정되어 있습니다.

버전 3.16.0a0 (unreleased)에서 변경: use_ttk 매개변수가 추가되었습니다.

result

apply`에 의해 생성된 또는 대화 상자가 취소된 경우 ``None`().

body(master)

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

buttonbox()

기본 동작은 OK 및 Cancel 버튼을 추가합니다. 사용자 정의 버튼 레이아웃의 경우 이를 재정의하십시오.

validate()

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

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 는 포커스가 없는 상태에서 Return 키로 활성화되는 기본 버튼의 인덱스이고, cancel 은 윈도우 매니저를 통해 창이 닫힐 때 반환되는 인덱스이며, title 은 창 제목, class_ 는 윈도우의 Tk 클래스 이름입니다. bitmap 은 메시지 옆에 표시되는 비트맵의 이름(예: 'warning' 또는 'question')입니다. use_ttk 가 참일 때 표준 이름인 'error', 'info', 'question''warning' 은 테마 아이콘으로 표시됩니다. detailtext 아래에 표시되는 보조 메시지입니다. use_ttk 가 참일 때(기본값) 대화 상자는 Tk 메시지 박스를 모델로 한 테마 기반 tkinter.ttk 위젯으로 생성되며, 거짓일 때는 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 - (레이블, 패턴) 튜플의 시퀀스, ‘*’ 와일드카드 허용
defaultextension - 파일에 추가할 기본 확장자 (저장 대화 상자)
multiple - 참(True)일 경우, 여러 항목을 선택할 수 있습니다

정적 팩토리 함수

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

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

Open 대화 상자를 생성하고 열린 파일 객체를 반환하거나, 대화 상자가 취소되면 None``을 반환합니다. 파일은 *mode* 모드로 열립니다(기본값은 읽기 전용 ``'r').

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

Open 대화 상자를 생성하고 열린 파일 객체 목록을 반환하며, 취소되면 빈 리스트를 반환합니다. 파일은 mode 모드로 열립니다(기본값은 읽기 전용 'r').

버전 3.16.0a0 (unreleased)부터 사용 지원 중단(deprecated), 버전 3.19에서 제거 예정: 여러 파일을 동시에 여는 것은 오류가 발생하기 쉬우며, 반환된 리스트를 with 문에서 사용할 수 없습니다. 대신 askopenfilenames() 가 반환하는 이름들을 반복하며 하나씩 여십시오.

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

SaveAs 대화 상자를 생성하고 열린 파일 객체를 반환하거나, 대화 상자가 취소되면 None``을 반환합니다. 파일은 *mode* 모드로 열립니다(기본값은 ``'w').

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

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

tkinter.filedialog.asksaveasfilename(**options)

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

tkinter.filedialog.askdirectory(**options)

사용자에게 디렉터리를 선택하도록 요청하고 그 경로를 문자열로 반환하며, 대화 상자가 취소되면 빈 문자열을 반환합니다. 추가 키워드 옵션: mustexist - 참(True)일 경우, 사용자는 존재하는 디렉터리만 선택할 수 있습니다(기본값은 거짓(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

Dialogbitmap 으로 사용하기 적합한 비트맵 이름('questhead').

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

클래식(테마 미적용) Tk 위젯으로 구축된 모달 대화 상자를 표시하고 사용자가 버튼 중 하나를 누를 때까지 기다립니다. cnf*를 통해 제공되거나 키워드 인자로 제공되는 옵션은 모두 필수입니다: *title (창 제목), text (메시지), bitmap (비트맵 아이콘 이름, 예: DIALOG_ICON), default (기본 버튼의 인덱스) 및 strings (버튼 레이블 시퀀스). 구성 후, num 속성에는 사용자가 누른 버튼의 인덱스가 저장됩니다.

destroy()

아무것도 수행하지 않습니다. 대화 상자 창이 생성자가 반환되기 전에 자동으로 파괴되므로 이 메서드가 수행할 작업이 없습니다.

분실물 보관소