В моей программе я создаю окно из своего корневого окна tkinter и скрываю рут с помощью функции .withdraw (). Когда я пытаюсь снова показать корневое окно, вызвав корневой класс, оно не отображается, и моя программа завершает работу. Вот примерный план моего кода с описанием проблемы:
class MainGUI:
def __init__(self, master):
self.master = master
#....Create and .grid() all GUI Widgets....
# Button for switching to other window
button = Button(text="CLICKME", command=lambda: self.other_window())
# Call and define show function at the end of __init__
self.show()
def show(self):
self.master.update()
self.master.deiconify()
# Create other window and withdraw self on button click
def other_window(self):
OtherGUI(self.master)
self.master.withdraw()
class OtherGUI:
def __init__(self, master):
# Function for returning to main window, calls MainGUI class
# to create window and withdraws self.
def main_window():
MainGUI(self.master)
self.master.withdraw()
master = self.master = Toplevel(master)
#....Create and .grid() all GUI Widgets....
# Button for switching back to main window
button = Button(text="CLICKME", command=lambda: self.main_window())
Используя функции печати в MainGUI, я смог увидеть, что при попытке вернуться обратно в главное окно фактически вызывается show (), и кажется, что вводится весь класс.
Это озадачивает меня, поскольку я только действительно научился делать это из других сообщений на форуме, и использование root.update () и .deiconify () казалось решением для большинства людей, однако я понятия не имею, почему это не работает
Кто-нибудь имеет представление о том, где я иду не так?