Griffon Вы абсолютно правы. Вопрос поставлен неккоректно.
Вопрос должен быть следующим:
“Каким образом удалить корневое окно, вывод которого скрыт методом .withdraw()?”В результате имеет то, что окна размножаются при каждом вызове и естественно, обращение к ним блокируется.
Ну так удаляйте их. Кто за Вас это будет делать? Пример кода:
import Tkinter
import tkMessageBox
root = Tkinter.Tk()
root.withdraw()
mes = tkMessageBox.askyesno(message = "first question")
print mes
root.destroy()
root = Tkinter.Tk()
root.withdraw()
mes2 = tkMessageBox.askyesno(message = "second question")
print mes2
root.destroy()
root.mainloop()
P.S. Подход, построенный на удалении корневых окон изначально ущербен. Легче удалять не окна (а потом их заново создавать), а рамки в которые покуются все виджеты данного сеанса или страницы программы (как Вам будет удобно). Таким образом, корневое окно не будет мучаться, а виджеты будут скрываться. Кстати, есть еще альтернативный механизм - метод _forget() который скрывает рассположение рамки с упакованными виджетами. Если снова понадобиться, можно заново ее разместить :)
P.S.S. Надеюсь это оно…