Проблема с командой Python Tkinter Button - PullRequest
0 голосов
/ 02 мая 2020

Я написал систему входа / регистрации в 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. Как я могу это исправить?

1 Ответ

0 голосов
/ 02 мая 2020

Я решил эту проблему, Tk () должен использоваться только для первого окна, для следующих - Toplevel ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...