Как закрыть родительское окно при открытии дочернего? CustomTkinter
Не могу закрыть окно авторизации, которое вызывает рабочую форму. Открывшееся окно работает, все кнопки нажимаются. Окно авторизации становится просто неактивным, не работают кнопки и его нельзя закрыть даже на крестик.
Второе окно делаю в отдельном файле, а все функции и интерфейс приложения описаны в классах. Может быть в этом дело?
class Auth(ctk.CTk):
def __init__(self):
super().__init__()
#настройки окна
self.geometry("350x300")
self.title("JustLan Admin")
self.resizable(False, False)
self.my_font = ctk.CTkFont(family="Times New Roman", size=24)
#плашка
self.back_frame = ctk.CTkFrame(master=self)
self.back_frame.pack(pady=25, padx=20, fill="both", expand=True)
#элементы на плашке
self.auth_button = ctk.CTkButton(master=self.back_frame, text="Войти", font=("Times New Roman", 20), width=160, height=38, command=self.login)
self.auth_button.pack(pady=3)
#команды
def login(self):
if (self.login_entr.get() == "root" and self.pass_entr.get() == "root"):
self.error_label.configure(text="")
os.system('python workspace.py')
self.destroy()
else:
self.error_label.configure(text="Неверный логин или пароль")
if __name__ == "__main__":
app = Auth()
app.mainloop()
Пробовал разное
self.destroy()
sys.exit(0)
self.master.destroy()
С использованием
self.withdraw()
os.system('python workspace.py')
все получалось как я хотел (первое окно закрылось, второе открылось), но возникала ошибка призакрытии рабочей области, точнее приложение закрывалось, но требовало остановки в pycharm
Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python3.9/tkinter/init.py", line 1889, in call try: KeyboardInterrupt
Ответы (1 шт):
Для закрытия первого окна авторизации одновременно с закрытием рабочей области я использовал
self.withdraw()
os.system('python workspace.py')
sys.exit(0)
Мое приложение состоит только из 2 окон, поэтому я не проверял как это будет работать с 3+ окнами.
