Создание всплывающего окна «Новый пользователь» с использованием tkinter в python - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь создать приложение, в котором при нажатии на ссылку открывается всплывающее окно, где вы можете создать нового пользователя для приложения. При этом запрашивается идентификатор пользователя, пароль и подтверждение пароля. Когда пароль и подтверждение пароля не совпадают, выдается сообщение о том, что пароли не совпадают, но оно снова выдает то же сообщение, когда пароли действительно совпадают. Может кто-нибудь помочь с решением этой проблемы?

def new_user_function(*args):
    if password == confirm_pass:
        MyDB.add_new_user(email, password)
    else:
        messagebox.showinfo("Passwords don't match")

def new_user_function_popup(*args):
    """This will open a pop up window for adding new users"""
    user_popup = Toplevel()
    user_popup.title("Create New user")

    ttk.Label(user_popup, text = "Enter Email ID").grid(column = 0, row = 0, sticky = E)
    ttk.Label(user_popup, text = "New Password").grid(column = 0, row = 1, sticky = E)
    ttk.Label(user_popup, text = "Confirm Password").grid(column = 0, row = 2, sticky = E)

    ttk.Entry(user_popup, width = 25, textvariable = user_id).grid(column = 1, row = 0, sticky = (E,W))
    ttk.Entry(user_popup, width = 25, textvariable = password, show = "*").grid(column = 1, row = 1, sticky = (E,W))
    ttk.Entry(user_popup, width = 25, textvariable = confirm_pass, show = "*").grid(column = 1, row = 2, sticky = (E,W))

    ttk.Button(user_popup, text = 'Create', command = new_user_function).grid(column = 1, row = 3, sticky = (E,W))  

user_id = StringVar()
password = StringVar()
confirm_pass = StringVar()
upload_fp = StringVar()
save_fp = StringVar()

1 Ответ

0 голосов
/ 05 ноября 2018

Как правильно указано stovfl , решение этой проблемы заключается в использовании функции get(). StringVar() - это класс, который создает объект python, но для получения значений нам нужно использовать метод, определенный в классе, и get() делает это.

...