Python 使用tkinter进行条目验证
当我试图输入某个内容时,它将进入无效块,不允许我输入任何键。我明白,我可以通过使用其他选项“聚焦”、“聚焦输出”等来消除它。但我希望它与键一起工作:Python 使用tkinter进行条目验证,python,validation,tkinter,Python,Validation,Tkinter,当我试图输入某个内容时,它将进入无效块,不允许我输入任何键。我明白,我可以通过使用其他选项“聚焦”、“聚焦输出”等来消除它。但我希望它与键一起工作: from tkinter import * import re def validate_email(P): # master.errormsg.config(text='') x = re.match(r"[^@]+@[^@]+\.[^@]+", P) print(P) errormsg.config(text='')
from tkinter import *
import re
def validate_email(P):
# master.errormsg.config(text='')
x = re.match(r"[^@]+@[^@]+\.[^@]+", P)
print(P)
errormsg.config(text='')
emailentry.focus_set()
return x != None
def invalid_email(P):
errormsg.config(text='Invalid Email Address')
emailentry.focus_set()
if __name__ == '__main__':
master = Tk()
errormsg = Label(master,text='', fg='red')
errormsg.pack()
L1 = Label(master, text='Enter Email Address')
L1.pack(side=LEFT)
vcmd = (master.register(validate_email), '%P')
invcmd = (master.register(invalid_email), '%P')
emailentry = Entry(master, validate="focusout", validatecommand=vcmd,
invalidcommand=invcmd)
emailentry.pack()
Button(master, text="Login").pack()
master.mainloop()
我自己也是一个初学者,但在运行代码和调试时,当您使用“键”时,输入字段会获取您当前在键盘上按下的键的值。您的两个函数正在评估值,但每次都会失败,因为它不是电子邮件地址
如果您在控制台中查看,您可以看到打印(p)正在打印您当时按下的任何键 我自己也是一个初学者,但在运行代码和调试时,当您使用“键”时,输入字段会获取您当前在键盘上按下的键的值。您的两个函数正在评估值,但每次都会失败,因为它不是电子邮件地址
如果您在控制台中查看,您可以看到打印(p)正在打印您当时按下的任何键 哎呀!!使用validate=key更改代码…我指的是“key”oops!!用validate=key更改代码……我指的是“key”关闭,但不是完全关闭<如果允许编辑(按键),则代码>P将是条目的值。由于每个键都被拒绝,所以P总是一个字符。在稍有不同的情况下,
P
可能是一个长字符串(例如,如果在允许编辑之前为条目指定了默认值)。请关闭,但不能完全关闭<如果允许编辑(按键),则代码>P将是条目的值。由于每个键都被拒绝,所以P总是一个字符。在稍有不同的情况下,P
可能是一个长字符串(例如,如果在允许编辑之前为条目指定了默认值)。