> **Источник:** https://python-all.ru/3.9/library/dialog.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# Диалоги Tkinter

## [`tkinter.simpledialog`](https://python-all.ru/3.9/library/dialog.html#module-tkinter.simpledialog) – Стандартные диалоговые окна ввода Tkinter

**Исходный код:** [Lib/tkinter/simpledialog.py](https://python-all.ru/src/3.9/Lib/tkinter/simpledialog.py)

---

Модуль [`tkinter.simpledialog`](https://python-all.ru/3.9/library/dialog.html#module-tkinter.simpledialog) содержит удобные классы и функции для создания простых модальных диалогов для получения значения от пользователя.

#### `tkinter.simpledialog.askfloat(title, prompt, **kw)`

#### `tkinter.simpledialog.askinteger(title, prompt, **kw)`

#### `tkinter.simpledialog.askstring(title, prompt, **kw)`

Эти три функции открывают диалоговые окна, предлагающие пользователю ввести значение нужного типа.

#### `class tkinter.simpledialog.Dialog(parent, title=None)`

Базовый класс для пользовательских диалогов.

> #### `body(master)`
>
> Переопределите для создания интерфейса диалога и возврата виджета, который должен получить начальный фокус.
>
> #### `buttonbox()`
>
> Поведение по умолчанию добавляет кнопки OK и Cancel. Переопределите для создания собственной разметки кнопок.

## [`tkinter.filedialog`](https://python-all.ru/3.9/library/dialog.html#module-tkinter.filedialog) – Диалоги выбора файлов

**Исходный код:** [Lib/tkinter/filedialog.py](https://python-all.ru/src/3.9/Lib/tkinter/filedialog.py)

---

Модуль [`tkinter.filedialog`](https://python-all.ru/3.9/library/dialog.html#module-tkinter.filedialog) предоставляет классы и фабричные функции для создания окон выбора файлов/каталогов.

### Нативные диалоги загрузки/сохранения

Следующие классы и функции предоставляют окна диалогов выбора файлов, объединяющие нативный внешний вид и поведение с настройками для изменения поведения. К перечисленным ниже классам и функциям применимы следующие именованные аргументы:

> *parent*
>
> – родительское окно, поверх которого будет размещён диалог
>
> *title*
>
> – заголовок окна
>
> *initialdir*
>
> – каталог, который будет открыт при запуске диалога
>
> *initialfile*
>
> – файл, выбранный при открытии диалога
>
> *filetypes*
>
> – последовательность кортежей (метка, шаблон), допускается символ '\*'
>
> *defaultextension*
>
> – расширение по умолчанию, добавляемое к имени файла (для диалогов сохранения)
>
> *multiple*
>
> – при значении true допускается выбор нескольких элементов

**Статические фабричные функции**

При вызове перечисленные ниже функции создают модальное диалоговое окно с нативным внешним видом, ожидают выбора пользователя и возвращают выбранное значение(я) или `None` вызвавшему коду.

#### `tkinter.filedialog.askopenfile(mode="r", **options)`

#### `tkinter.filedialog.askopenfiles(mode="r", **options)`

Две указанные выше функции создают диалог [`Open`](https://python-all.ru/3.9/library/dialog.html#tkinter.filedialog.Open) и возвращают открытый(е) объект(ы) файла в режиме только для чтения.

#### `tkinter.filedialog.asksaveasfile(mode="w", **options)`

Создают диалог [`SaveAs`](https://python-all.ru/3.9/library/dialog.html#tkinter.filedialog.SaveAs) и возвращают объект файла, открытый в режиме только для записи.

#### `tkinter.filedialog.askopenfilename(**options)`

#### `tkinter.filedialog.askopenfilenames(**options)`

Две указанные выше функции создают диалог [`Open`](https://python-all.ru/3.9/library/dialog.html#tkinter.filedialog.Open) и возвращают выбранное имя(ена) файла(ов), соответствующие существующему(им) файлу(ам).

#### `tkinter.filedialog.asksaveasfilename(**options)`

Создают диалог [`SaveAs`](https://python-all.ru/3.9/library/dialog.html#tkinter.filedialog.SaveAs) и возвращают выбранное имя файла.

#### `tkinter.filedialog.askdirectory(**options)`

Запрашивает у пользователя выбор каталога.

Дополнительный именованный параметр:

*mustexist*

– определяет, должен ли выбранный каталог существовать.

#### `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)`

Создаёт базовый диалог выбора файла.

#### `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)`

Закрывает диалог, возвращая текущий выбор.

#### `quit(how=None)`

Закрывает диалог, возвращая имя файла, если таковое имеется.

#### `set_filter(dir, pat)`

Устанавливает фильтр файлов.

#### `set_selection(file)`

Обновляет текущий выбор файла на *file*.

#### `class tkinter.filedialog.LoadFileDialog(master, title=None)`

Подкласс FileDialog, который создаёт окно диалога для выбора существующего файла.

#### `ok_command()`

Проверяет, что файл указан и выбранный элемент указывает на уже существующий файл.

#### `class tkinter.filedialog.SaveFileDialog(master, title=None)`

Подкласс FileDialog, создающий окно диалога для выбора целевого файла.

#### `ok_command()`

Проверяет, указывает ли выбранный элемент на допустимый файл, не являющийся каталогом. Требуется подтверждение, если выбран уже существующий файл.

## [`tkinter.commondialog`](https://python-all.ru/3.9/library/dialog.html#module-tkinter.commondialog) – шаблоны окон диалогов

**Исходный код:** [Lib/tkinter/commondialog.py](https://python-all.ru/src/3.9/Lib/tkinter/commondialog.py)

---

Модуль [`tkinter.commondialog`](https://python-all.ru/3.9/library/dialog.html#module-tkinter.commondialog) предоставляет класс [`Dialog`](https://python-all.ru/3.9/library/dialog.html#tkinter.commondialog.Dialog), который является базовым классом для диалогов, определённых в других вспомогательных модулях.

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

#### `show(color=None, **options)`

Отображает окно диалога.

> **См. также**
>
> Модули [`tkinter.messagebox`](https://python-all.ru/3.9/library/tkinter.messagebox.html#module-tkinter.messagebox), [Чтение и запись файлов](https://python-all.ru/3.9/tutorial/inputoutput.html#tut-files)
