Когда я нажимаю кнопку «Изменить», функция «changeUsername» не выполняется? - PullRequest
0 голосов
/ 14 мая 2018

Как я могу выполнить функцию «changeUsername», когда я нажимаю кнопку «Изменить»?Есть ли решение для этого?Спасибо.

Вот код:

teacherSetScreen = Tk()
teacherSetScreen.title("Teacher Home")
teacherSetScreen.geometry("300x130")

newUsername = StringVar(teacherSetScreen)

def changeUsername():
    print("dgdfgf")
    newName = newUsername.get() 
    if(validateUsername(newName)):
        print("Username Changed!")
        updateData("Username", newName)
    else:
        print("Invalid Username")

def changeUsernamePop():
    popup = Toplevel()
    labelNewUsername = Label(popup, text="New Username: ")
    labelNewUsername.grid(row=0, column=0, pady=4)
    entryNewUsername = Entry(popup, textvariable=newUsername)
    entryNewUsername.grid(row=0, column=1)
    buttonNewUsername = Button(popup, text="Change", command=changeUsername)
    buttonNewUsername.grid(row=1, column=0, columnspan=3, padx=50)

labelUsername = Label(teacherSetScreen, text="Username: "+labelText["Username"])
labelUsername.grid(row=1, column=0, pady=4, columnspan=2, sticky=W)
changeUsername = Button(teacherSetScreen, text="Change Username", command=changeUsernamePop)
changeUsername.grid(row=1, column=3, pady=4, columnspan=3)

teacherSetScreen.mainloop()

1 Ответ

0 голосов
/ 14 мая 2018

Вы повторно используете имя changeUsername, перезаписывая функцию:

def changeUsername():
    ...

...

changeUsername = Button(...)  # no more function

К моменту вызова changeusernamePop имя changeUsername относится к экземпляру Button, а не к функции, которую вы определили ранее.

...