Содержание страницы
Диалоговые окна Tkinter¶Tkinter dialogs
tkinter.simpledialog – Стандартные диалоговые окна ввода Tkinter¶tkinter.simpledialog – Standard Tkinter input dialogs
Исходный код: Lib/tkinter/simpledialog.py
Модуль 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)¶
Предлагает пользователю ввести значение нужного типа и возвращает его, или
None, если диалог отменён.title – заголовок диалога, а prompt – сообщение, отображаемое над полем ввода. initialvalue – значение, изначально помещаемое в поле. parent – окно, над которым отображается диалог.
askinteger()иaskfloat()также принимают minvalue и maxvalue, которые ограничивают допустимое значение.askstring()также принимает show – символ, используемый для маскировки вводимого текста, например'*'для скрытия пароля.
- class tkinter.simpledialog.Dialog(parent, title=None)¶
Базовый класс для пользовательских диалогов. При создании экземпляра диалог отображается модально, и метод возвращает управление после закрытия диалога пользователем; введённое значение затем доступно в атрибуте
result.- 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)¶
Простой модальный диалог, который отображает сообщение text над строкой кнопок с подписями, заданными buttons, и возвращает индекс кнопки, нажатой пользователем. default – это индекс кнопки, активируемой клавишей Return, cancel – индекс, возвращаемый при закрытии окна через оконный менеджер, title – заголовок окна, а class_ – имя класса Tk для окна.
- go()¶
Отображает диалог, ожидает, пока пользователь нажмёт кнопку или закроет окно, и возвращает индекс выбранной кнопки.
tkinter.filedialog – Диалоги выбора файлов¶tkinter.filedialog – File selection dialogs
Исходный код: Lib/tkinter/filedialog.py
Модуль tkinter.filedialog предоставляет классы и фабричные функции для создания окон выбора файлов/каталогов.
Нативные диалоги открытия и сохранения¶Native load/save dialogs
Следующие классы и функции предоставляют окна диалогов выбора файлов, объединяющие нативный внешний вид и поведение с настройками для изменения поведения. К перечисленным ниже классам и функциям применимы следующие именованные аргументы:
parent – родительское окно, поверх которого будет размещён диалогtitle – заголовок окнаinitialdir – каталог, который будет открыт при запуске диалогаinitialfile – файл, выбранный при открытии диалогаfiletypes – последовательность кортежей (метка, шаблон), допускается символ '*'defaultextension – расширение по умолчанию, добавляемое к имени файла (для диалогов сохранения)multiple – при значении true допускается выбор нескольких элементов
Статические фабричные функции
При вызове следующие функции создают модальный диалог с нативным внешним видом, ожидают выбора пользователя и возвращают результат. Точное возвращаемое значение зависит от функции (см. ниже); при отмене диалога возвращается пустая строка, пустой кортеж или None. Точный тип этого пустого значения может различаться в зависимости от платформы и версии Tk, поэтому проверяйте результат на истинность, а не сравнивайте с конкретным значением.
- tkinter.filedialog.askopenfile(mode='r', **options)¶
- tkinter.filedialog.askopenfiles(mode='r', **options)¶
Создаёт диалог
Open.askopenfile()возвращает открытый файловый объект илиNone, если диалог отменён.askopenfiles()возвращает список открытых файловых объектов или пустой кортеж, если отменён. Файлы открываются в режиме mode (по умолчанию только для чтения'r').
- 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)¶
Создаёт базовый диалог выбора файла.
- 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()¶
Вызывается, когда пользователь подтверждает текущий выбор. Базовая реализация принимает выбор и закрывает диалог;
LoadFileDialogиSaveFileDialogпереопределяют его, чтобы сначала проверить выбор.
- quit(how=None)¶
Закрывает диалог, возвращая имя файла, если таковое имеется.
- set_filter(dir, pat)¶
Устанавливает фильтр файлов.
- set_selection(file)¶
Обновляет текущий выбор файла на file.
tkinter.commondialog – шаблоны окон диалогов¶tkinter.commondialog – Dialog window templates
Исходный код: Lib/tkinter/commondialog.py
Модуль tkinter.commondialog предоставляет класс Dialog, который
является базовым классом для диалогов, определённых в других вспомогательных модулях.
tkinter.dialog – классические диалоговые окна Tk¶tkinter.dialog – Classic Tk dialog boxes
Исходный код: Lib/tkinter/dialog.py
Модуль tkinter.dialog предоставляет простое модальное диалоговое окно, построенное на
классических (без тем) виджетах Tk.
- tkinter.dialog.DIALOG_ICON¶
Имя стандартного растрового изображения (
'questhead'), отображаемого диалогомDialog.
- class tkinter.dialog.Dialog(master=None, cnf={}, **kw)¶
Отображает модальное диалоговое окно, построенное из классических (без тем) виджетов Tk, и ожидает, пока пользователь нажмёт одну из его кнопок. Параметры, задаваемые через cnf или как именованные аргументы, включают title (заголовок окна), text (сообщение), bitmap (значок, по умолчанию
DIALOG_ICON), default (индекс кнопки по умолчанию) и strings (последовательность подписей кнопок). После создания атрибутnumсодержит индекс кнопки, нажатой пользователем.- destroy()¶
Уничтожает окно диалога.
См. также