Что такое 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()— метод для получения введённого текста
Полный пример
Собираем всё вместе: три кнопки для разных типов диалогов и один лейбл для отображения результата:
Важное замечание
Modal не является виджетом в том смысле, что его не нужно добавлять через win.add_child(). Он создаётся и показывается динамически, а после закрытия уничтожается.
Каждый раз при вызове show_alert(), show_confirm() или show_input() создаётся новое модальное окно. Его можно настроить через свойства и обработчики перед показом.