Я написал систему входа / регистрации в python, используя Tkinter. Код выглядит примерно так:
class Sign_Up:
def __init__(self, root):
self.root = root
root.geometry('500x500')
self.name = StringVar()
...
label_0 = Label(root, ...)
entry_0 = entry(root, text = name)
...
self.b = Button(root, command = flag, ...)
self.mainloop()
def flag(self):
name1 = self.name.get()
...
Функция флага проверяет, доступно ли имя пользователя или совпадают ли пароли, и показывает относительные сообщения из tkinter.mesagebox.
Все работает нормально и желательно, когда я вызываю функция ниже:
def signup():
root = Tk()
s = Sign_Up(root)
signup()
Однако, когда я пишу другое меню класса, которое является классом для окна с 2 кнопками: зарегистрируйтесь и войдите в систему и передайте эту функцию своей команде кнопки, она не работает :
class Menu:
def __init__(self, root):
self.root = root
...
self b1 = (root, command = signup, ...)
root.mainloop()
def signup(self):
root = Tk()
s = Sign_Up(root)
Функция регистрации не работает с командой , и я предполагаю, что проблема в функции get в функции flag выше, потому что каждый раз, когда он показывает предупреждение «заполнить пробелы», которое должно отображаться, когда длина записей равна 0.
Как я уже сказал, функция-флаг и класс регистрации работают правильно независимо, но он не работает, когда я передаю команду tkinter button. Как я могу это исправить?