Toplevel в Tkinter: запретить открытие двух окон

скажем, у меня есть простой код, вроде этого:

from Tkinter import *
root = Tk()
app = Toplevel(root)
app.mainloop()

это открывает два окна: и

1 ответов


на withdraw() метод удаляет окно с экрана.
The iconify() метод минимизирует окно или превращает его в значок.
The deiconify() метод перерисует окно и/или активирует его.

если вы выберите withdraw(), убедитесь, что вы рассмотрели новый способ выхода из программы перед тестированием.
например,

from Tkinter import * # tkinter in Python 3

root = Tk()
root.withdraw()

top = Toplevel(root)
top.protocol("WM_DELETE_WINDOW", root.destroy)

but = Button(top, text='deiconify')
but['command'] = root.deiconify
but.pack()

root.mainloop()

на protocol() метод может использоваться для регистрации функции это будет называться, когда
Топлевел окна кнопка закрытия нажата. В этом случае мы можем использовать destroy() для выхода.