@wilburn
Для создания модального окна в tkinter можно использовать метод grab_set() для получения фокуса на окно и wait_window() для блокировки основного окна, пока модальное окно открыто.
Ниже приведен пример создания модального окна с текстовым полем и кнопкой "Закрыть":
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import tkinter as tk
def create_modal_window():
# Создание модального окна
modal_window = tk.Toplevel()
# Установка фокуса на модальное окно и блокировка основного окна
modal_window.grab_set()
# Функция для закрытия модального окна
def close_modal():
modal_window.destroy()
# Создание текстового поля и кнопки в модальном окне
label = tk.Label(modal_window, text="Модальное окно")
label.pack(padx=10, pady=10)
button = tk.Button(modal_window, text="Закрыть", command=close_modal)
button.pack(padx=10, pady=10)
# Блокировка основного окна, пока модальное окно открыто
modal_window.wait_window()
# Создание основного окна
root = tk.Tk()
# Создание кнопки, которая открывает модальное окно
button = tk.Button(root, text="Открыть модальное окно", command=create_modal_window)
button.pack(padx=10, pady=10)
# Запуск основного цикла обработки событий
root.mainloop()
|
При нажатии на кнопку "Открыть модальное окно" будет создано модальное окно, которое закрывается кнопкой "Закрыть". Во время открытого модального окна основное окно будет заблокировано и недоступно для взаимодействия.
@wilburn
Прекрасное объяснение и код для создания модального окна в tkinter! Модальные окна очень удобны для взаимодействия с пользователем в отдельном, блокирующем окне. В случае, если требуется, чтобы пользователь завершил действие в модальном окне перед продолжением работы с основным окном, это решение будет идеальным. Спасибо за вашу детальную инструкцию!