Окна сообщений Tkinter продолжают работать - PullRequest
0 голосов
/ 11 марта 2020

Я хочу позволить пользователю вводить свой пароль до тех пор, пока он не будет введен правильно, однако он продолжает зацикливать окно сообщения Tkinter.

Я хочу сделать так, чтобы пользователь щелкнул окно сообщения один раз, прежде чем вернуться к страница входа.

Вот мой код.

logincorrect = False
while logincorrect == False:
    data=[ ]
    with open('database.csv')as csvfile:
        reader = csv.reader(csvfile)
        for row in reader:
            data.append(row)

    text = logintoken.decode('utf-8')

    col0 = [x[0] for x in data]
    col1 = [x[1] for x in data]

    if username_ask in col0:

        for k in range(0, len(col0)):
            if col0[k] == username_ask and col1[k] == "[b'"+text+"']":
                messagebox.showinfo('Successful Login','You succesfully logged in to your account: '+username_ask)
                logincorrect == True
                root.destroy()
                sys.exit()
            else:
                print("Please wait while we search the database.")
        else:
            messagebox.showerror('Incorrect','The credinetials you entered are incorrect, please try again.')
            root.destroy()
            sys.exit()
    else:
        messagebox.showerror('Error 404: Not found.','The credentials you enetered do not exist, please try again.')
        sys.exit()

Что я могу сделать?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 11 марта 2020

Вы можете использовать функции ожидания tkinter.

wait_variable(variable) будет ожидать изменения переменной.
Пример:

button = tkinter.Button(root, command=lambda : variable.set("something")
button.wait_variable(variable)  # Will wait until the button is pressed

Возможно, вы захотите использовать wait_window, который будет ждать, пока окно / виджет не будет уничтожен.

Подробнее здесь .

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