Графические виджеты
Уроки Открыть IDE
На главную
Виджеты • Урок 15

Модальные окна

Диалоги для уведомлений, подтверждений и ввода данных

Что такое Modal?

gui.Modal — это всплывающее диалоговое окно, которое блокирует взаимодействие с основным окном до тех пор, пока пользователь не закроет его.

Где они встречаются:

  • 📢 Информационные сообщения («Файл сохранён»)
  • ⚠️ Подтверждение действия («Вы уверены, что хотите удалить?»)
  • ✏️ Запрос текстового ввода («Введите ваше имя»)
  • 🚨 Предупреждения об ошибках

Модальные окна не нужно добавлять через add_child() — они создаются и показываются динамически.

Alert — простое уведомление

show_alert() — показывает модальное окно только с информационным сообщением и одной кнопкой «ОК»:

📢 Нажмите на кнопку — появится модальное окно с сообщением и кнопкой «Понятно».

Свойства Alert:

  • title — заголовок окна
  • message — текст сообщения
  • confirm_text — текст на кнопке (по умолчанию «OK»)

Confirm — подтверждение действия

show_confirm() — показывает модальное окно с двумя кнопками (например, «Да» и «Нет»). Результат выбора можно обработать через события on_confirm и on_cancel:

Результат: ?
❓ Нажмите на кнопку — появится диалог с выбором «Да» или «Нет». Результат отобразится на лейбле.

Свойства Confirm:

  • title — заголовок
  • message — текст вопроса
  • confirm_text — текст на кнопке подтверждения
  • cancel_text — текст на кнопке отмены
  • on_confirm — обработчик нажатия на кнопку подтверждения
  • on_cancel — обработчик нажатия на кнопку отмены

Input — ввод текста

show_input() — показывает модальное окно с полем для ввода текста. Введённое значение можно получить через метод get_input_value():

Введено: ?
✏️ Введите имя в появившемся диалоге — оно отобразится на лейбле.

Свойства Input:

  • title — заголовок
  • message — текст над полем ввода
  • confirm_text — текст на кнопке подтверждения
  • cancel_text — текст на кнопке отмены
  • on_confirm — обработчик нажатия на кнопку подтверждения
  • on_cancel — обработчик нажатия на кнопку отмены (опционально)
  • get_input_value() — метод для получения введённого текста

Полный пример

Собираем всё вместе: три кнопки для разных типов диалогов и один лейбл для отображения результата:

🎯 Полноценный пример: Alert (информация), Confirm (подтверждение), Input (ввод текста).

Важное замечание

Modal не является виджетом в том смысле, что его не нужно добавлять через win.add_child(). Он создаётся и показывается динамически, а после закрытия уничтожается.

Каждый раз при вызове show_alert(), show_confirm() или show_input() создаётся новое модальное окно. Его можно настроить через свойства и обработчики перед показом.