Tkinter编写登录GUI 输入正确账号密码仍提示错误的问题咨询
故障根因
校验逻辑始终不通过的核心错误是调用Entry组件获取输入值的方法时遗漏了括号。
Tkinter中Entry组件的get是需要调用的实例方法,你代码判断条件里写的u.get、p.get获取到的是方法对象本身,而非用户输入的字符串内容。用方法对象和预设的"admin"、"defaultpass"字符串做相等比对,结果永远为False,因此无论输入什么内容都会触发账号密码错误的提示。
修复代码
只需给判断条件里的get补上括号,让方法实际执行返回输入内容即可:
def loggingin(): # get后加()才是执行方法、获取输入框内的字符串值 if u.get() == rightUser and p.get() == rightPassword: result = Label(root, text="Succesfully Logged In") result.pack() else: result = Label(root, text="Wrong User or Password") result.pack()
可选优化点
- 密码输入框可增加
show="*"配置,输入内容会自动显示为掩码,符合常规登录交互逻辑:p = Entry(root, bg="gray",borderwidth=7, show="*") - 当前逻辑每次点击登录都会新建一个结果标签堆叠在界面上,可提前初始化结果标签,点击登录时只更新标签的文本属性,避免界面冗余控件堆积。
内容的提问来源于stack exchange,提问作者jhi77
相关产品推荐
相关产品推荐

