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

---

# `tkinter.messagebox` – диалоговые окна Tkinter

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

---

Модуль `tkinter.messagebox` предоставляет шаблонный базовый класс, а также ряд удобных методов для часто используемых конфигураций. Диалоговые окна являются модальными: каждое блокирует выполнение до ответа пользователя, затем возвращает значение, зависящее от функции. Функции `show*` и [`Message.show()`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.Message.show) возвращают символическое имя нажатой кнопки в виде строки (например, [`OK`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.OK) или [`YES`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.YES)), в то время как функции `ask*` возвращают [`bool`](https://python-all.ru/3.14/library/functions.html#bool) или `None` (см. каждую функцию ниже). Распространённые стили и макеты диалоговых окон включают, но не ограничиваются:

![../_images/tk_msg.png](https://python-all.ru/3.14/_images/tk_msg.png)

#### `class tkinter.messagebox.Message(master=None, **options)`

Создаёт окно сообщения с заданным приложением сообщением, значком и набором кнопок. Каждая кнопка в окне сообщения идентифицируется уникальным символическим именем (см. параметры *type*).

Поддерживаются следующие параметры:

> ***command***
>
> Задаёт функцию, которая вызывается при закрытии диалога пользователем. Имя кнопки, по которой пользователь щёлкнул для закрытия диалога, передаётся в качестве аргумента. Доступно только на macOS.
>
> ***default***
>
> Задаёт [символическое имя](https://python-all.ru/3.14/library/tkinter.messagebox.html#messagebox-buttons) кнопки по умолчанию для этого окна сообщения ([`OK`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.OK), [`CANCEL`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.CANCEL) и так далее). Если этот параметр не указан, первой кнопке в диалоге будет назначен статус по умолчанию.
>
> ***detail***
>
> Задаёт дополнительное сообщение к основному сообщению, заданному параметром *message*. Дополнительное сообщение будет отображаться под основным, и, где поддерживается ОС, шрифтом менее выделенным, чем основное сообщение.
>
> ***icon***
>
> Задаёт [значок](https://python-all.ru/3.14/library/tkinter.messagebox.html#messagebox-icons) для отображения. Если этот параметр не указан, будет отображаться значок [`INFO`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.INFO).
>
> ***message***
>
> Задаёт сообщение для отображения в этом диалоговом окне. Значение по умолчанию – пустая строка.
>
> ***parent***
>
> Делает указанное окно логическим родителем диалогового окна. Диалоговое окно отображается поверх своего родительского окна.
>
> ***title***
>
> Задаёт строку для отображения в качестве заголовка диалогового окна. Этот параметр игнорируется на macOS, где рекомендации платформы запрещают использование заголовка в диалогах такого типа.
>
> ***тип***
>
> Организует отображение [заранее определённого набора кнопок](https://python-all.ru/3.14/library/tkinter.messagebox.html#messagebox-types).

> **Примечание**
>
> В Tk 8.6 добавлен параметр *command*.

#### `show(**options)`

Отображает окно сообщения и ожидает выбора пользователем одной из кнопок. Затем возвращает символическое имя выбранной кнопки. Именованные аргументы могут переопределять параметры, заданные в конструкторе.

**Информационное диалоговое окно**

#### `tkinter.messagebox.showinfo(title=None, message=None, **options)`

Создаёт и отображает информационное диалоговое окно с указанными заголовком и сообщением.

**Предупреждающие диалоговые окна**

#### `tkinter.messagebox.showwarning(title=None, message=None, **options)`

Создаёт и отображает предупреждающее диалоговое окно с указанными заголовком и сообщением.

#### `tkinter.messagebox.showerror(title=None, message=None, **options)`

Создаёт и отображает окно сообщения об ошибке с заданными заголовком и сообщением.

**Окна вопросов**

#### `tkinter.messagebox.askquestion(title=None, message=None, *, type=YESNO, **options)`

Задаёт вопрос. По умолчанию показывает кнопки [`YES`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.YES) и [`NO`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.NO). Возвращает символьное имя выбранной кнопки.

#### `tkinter.messagebox.askokcancel(title=None, message=None, **options)`

Спрашивает, следует ли продолжить операцию. Показывает кнопки [`OK`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.OK) и [`CANCEL`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.CANCEL). Возвращает `True`, если ответ положительный, и `False` в противном случае.

#### `tkinter.messagebox.askretrycancel(title=None, message=None, **options)`

Спрашивает, нужно ли повторить операцию. Показывает кнопки [`RETRY`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.RETRY) и [`CANCEL`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.CANCEL). Возвращает `True`, если выбран повтор, и `False` в противном случае.

#### `tkinter.messagebox.askyesno(title=None, message=None, **options)`

Задаёт вопрос. Показывает кнопки [`YES`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.YES) и [`NO`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.NO). Возвращает `True`, если ответ «да», и `False` в противном случае.

#### `tkinter.messagebox.askyesnocancel(title=None, message=None, **options)`

Задаёт вопрос. Показывает кнопки [`YES`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.YES), [`NO`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.NO) и [`CANCEL`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.CANCEL). Возвращает `True`, если ответ «да», `None` при отмене и `False` в противном случае.

Символьные имена кнопок:

#### `tkinter.messagebox.ABORT = 'abort'`

#### `tkinter.messagebox.RETRY = 'retry'`

#### `tkinter.messagebox.IGNORE = 'ignore'`

#### `tkinter.messagebox.OK = 'ok'`

#### `tkinter.messagebox.CANCEL = 'cancel'`

#### `tkinter.messagebox.YES = 'yes'`

#### `tkinter.messagebox.NO = 'no'`

Предопределённые наборы кнопок:

#### `tkinter.messagebox.ABORTRETRYIGNORE = 'abortretryignore'`

Отображает три кнопки с символическими именами [`ABORT`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.ABORT), [`RETRY`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.RETRY) и [`IGNORE`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.IGNORE).

#### `tkinter.messagebox.OK = 'ok'`

Отображает одну кнопку с символьным именем [`OK`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.OK).

#### `tkinter.messagebox.OKCANCEL = 'okcancel'`

Отображает две кнопки с символьными именами [`OK`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.OK) и [`CANCEL`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.CANCEL).

#### `tkinter.messagebox.RETRYCANCEL = 'retrycancel'`

Отображает две кнопки с символьными именами [`RETRY`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.RETRY) и [`CANCEL`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.CANCEL).

#### `tkinter.messagebox.YESNO = 'yesno'`

Отображает две кнопки с символьными именами [`YES`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.YES) и [`NO`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.NO).

#### `tkinter.messagebox.YESNOCANCEL = 'yesnocancel'`

Отображает три кнопки с символическими именами [`YES`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.YES), [`NO`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.NO) и [`CANCEL`](https://python-all.ru/3.14/library/tkinter.messagebox.html#tkinter.messagebox.CANCEL).

Изображения значков:

#### `tkinter.messagebox.ERROR = 'error'`

#### `tkinter.messagebox.INFO = 'info'`

#### `tkinter.messagebox.QUESTION = 'question'`

#### `tkinter.messagebox.WARNING = 'warning'`
