1 回答

TA貢獻1850條經驗 獲得超11個贊
問題是因為username和password變量在主塊中,當您運行代碼時,輸入框是空的(最初)分配''給變量。因此,為了克服這個問題,您應該在函數內部分配變量,現在只采用填充的輸入框的值。
代碼:
from tkinter import *
from tkinter import messagebox
login_page = Tk()
login_page.title("login_page")
login_page.geometry("250x110")
def check_pass():
username = log_name.get()
userpass = log_pass.get()
if username == name and userpass == password:
messagebox.showinfo('Successfull','Login successfull')
else:
choice = messagebox.askretrycancel("Try again","Wrong password ")
if choice == True:
pass
else:
login_page.destroy()
......
# ALL THE SAME LINES OF CODE TILL
name = "admin"
password = "admin"
login_page.mainloop()
此外,由于您使用的是消息框askretrycancel,因此您可以根據用戶的選擇執行某些操作。所以在這里我說了如果用戶點擊重試,然后要求他們重新登錄,否則關閉應用程序。您可以將其更改為您喜歡的任何內容(甚至也可以刪除它。)
并且還建議說login_page.mainloop(),這樣 tkinter 就不會在以后的任何步驟中感到困惑。
希望你的“錯誤”被清除,如果有任何錯誤請告訴我 :D
添加回答
舉報