Entry输入框实现登录用户名冷却验证小案例(Tkinter)

本篇讲一下Entry冷却验证的用法,其实我们在登录注册的时候用户名是否存在的验证一般不能等到全部都填写完后,点击注册再进行判断,最好的办法是在输入用户名时就立刻判断是否存在。

这篇内容是在上一篇合法性验证的基础上的升级版,点击查看上一篇

实现的思路:
1.建立一个包含用户名和密码的字典用于验证判断用户名是否存在
2.一个Label,一个Entry就可以了,我写代码的时候为了看起来更直观,把密码框也放进去了,其实只是摆设,没有用上
3.对用户名输入框进行验证判断,关键的冷却验证或者叫实时验证就在这一步,详细看代码
最终要呈现的效果:
注意观察l3标签Label组件里内容的变化,它是实时动态反馈的
在这里插入图片描述
附上代码:

from tkinter import *

root = Tk()
root.geometry("350x150")
f1 = Frame(root, pady=20)
f1.pack()
v = StringVar()
v1 = StringVar()
DIC = {"张三": "abc123", "王二胖": "123456", "李四": "123asd", "三毛": "654321"}


def exist1(username):
    if username in DIC.keys():
        v1.set("用户名【" + username + "】已存在")

        return True
    elif username == "":
        v1.set("")
        return True
    else:
        v1.set("用户名可以注册")
        return True


exist = f1.register(exist1) #冷却验证必须要用register函数包起来
l1 = Label(f1, text="用户名:").grid(row=0, column=0)
e1 = Entry(f1, textvariable=v, validate="key", validatecommand=(exist, "%P")).grid(row=0, column=1) #%P表示获得最新的文本内容,validate参数要用key,当输入框内容变化的时候会调用exist1进行验证
l2 = Label(f1, text="密   码:").grid(row=2, column=0)
e2 = Entry(f1).grid(row=2, column=1)
l3 = Label(f1, textvariable=v1).grid(row=1, column=1)
root.mainloop()
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值