首页 > 解决方案 > 按钮不加起来

问题描述

def login_button():
    wrong_value_count = 0
    username = username_entry.get()
    password = password_entry.get()
    if username == user1_username and password == user1_password:
        redirecting_text = canvas.create_text(40, 90, text="Credentials Match, Please Wait While " 
        "We Redirect You To Your Vault", fill="red", anchor=NW)
        canvas.after(2500, lambda: delete_text(redirecting_text))
        print("ESHTA")
    elif username == user2_username and password == user2_password:
        redirecting_text2 = canvas.create_text(40, 90, text="Credentials Match, Please Wait While " 
        "We Redirect You To Your Vault", fill="red", anchor=NW)
        canvas.after(2500, lambda: delete_text3(redirecting_text2))
        print("ESHTA")
    else:
        wrong_value_count += 1
        if wrong_value_count <= 3:
            print("NOT ESHTA")
            wrong_credentials_text = canvas.create_text(40, 90, text="Wrong Credentials, Try again",
             fill="red", anchor=NW)
            canvas.after(2500, lambda: delete_text2(wrong_credentials_text))
        elif wrong_value_count > 3:
            lock_text = canvas.create_text(40, 90, text="Sorry, You've Reached the Max Number of Trials"
            " Please Try Again Later", fill="red", anchor=NW)
            canvas.after(2500, lambda: delete_text4(lock_text))
        print(wrong_value_count)

好的,所以我尝试添加错误的值计数,但是每次单击按钮时,它都显示它仍然是 1。如何让它加起来直到达到所写的 3?

标签: pythontkinter

解决方案


wrong_value_count必须在按钮之外,因为当login_button被调用时它会将计数重置为 0,这是您不想要的。

wrong_value_count = 0
def login_button():
    global wrong_value_count 
    username = username_entry.get()
    password = password_entry.get()
    if username == user1_username and password == user1_password:
        redirecting_text = canvas.create_text(40, 90, text="Credentials Match, Please Wait While " 
        "We Redirect You To Your Vault", fill="red", anchor=NW)
        canvas.after(2500, lambda: delete_text(redirecting_text))
        print("ESHTA")
    elif username == user2_username and password == user2_password:
        redirecting_text2 = canvas.create_text(40, 90, text="Credentials Match, Please Wait While " 
        "We Redirect You To Your Vault", fill="red", anchor=NW)
        canvas.after(2500, lambda: delete_text3(redirecting_text2))
        print("ESHTA")
    else:
        wrong_value_count += 1
        if wrong_value_count <= 3:
            print("NOT ESHTA")
            wrong_credentials_text = canvas.create_text(40, 90, text="Wrong Credentials, Try again",
             fill="red", anchor=NW)
            canvas.after(2500, lambda: delete_text2(wrong_credentials_text))
        elif wrong_value_count > 3:
            lock_text = canvas.create_text(40, 90, text="Sorry, You've Reached the Max Number of Trials"
            " Please Try Again Later", fill="red", anchor=NW)
            canvas.after(2500, lambda: delete_text4(lock_text))
        print(wrong_value_count)

推荐阅读