ООП Python tkinter. Проблема с реализацией взаимодействия родительского окна с дочерним
Хочу создать программу на ткинтере, в котором реализована форма авторизации. Создал 2 класса, в одном, собственно, само окно формы авторизации, в другом окно формы регистрации. Кнопку 'Нет учётной записи?' (new_account_button) я привязал к методу open_creator(), который и обращается к классу CreateAccount, то есть к форме регистрации. По моему плану форма регистрации должна открываться по кнопке 'Нет учётной записи?', но при запуске программы открываются параллельно два окна, и форма авторизации, и форма регистрации, а нужно, чтобы второе окно вызывалось по вышеназванной кнопке. Сто раз перечитывал код, не нашёл косяка. Что скажете вы?
import tkinter as tk
class Main(tk.Frame):
def __init__(self, root):
super().__init__(root)
#вызов метода с интерфейсом
self.interface()
def interface(self):
#Интерфейс программы
backgr = tk.Frame(bg = 'yellow', bd = 2)
backgr.place(relx = 0.1, rely = 0.02, relwidth = 0.8, relheight = 0.7)
name = tk.Label(backgr, text="Имя")
name.pack(side=tk.TOP)
name_box = tk.Entry(backgr, width = 30)
name_box.pack(pady = 5)
name_box.focus()
passw = tk.Label(backgr, text = 'Пароль')
passw.pack(pady = 5)
password_box = tk.Entry(backgr, width = 30, show = '*')
password_box.pack()
password_box.focus()
button_auth = tk.Button(backgr, text = 'Войти', bd = 2)
button_auth.pack(pady = 5)
new_account_button = tk.Button(root, text = 'Нет учётной записи?', command = self.open_creator())
new_account_button.pack(side = tk.BOTTOM)
def open_creator(self):
#Вызов класса с формой регистрации
CreateAccount()
class CreateAccount(tk.Toplevel):
def __init__(self):
super().__init__(root)
self.title("Создание учётной записи")
self.geometry('300x200')
self.resizable(False, False)
if __name__ == "__main__":
root = tk.Tk()
app = Main(root)
app.pack()
root.title('Введите пароль')
root.geometry('300x200')
root.resizable(False, False)
root.mainloop()