当我试图输入一些东西,它只是去无效块,不让我进入任何关键。我明白,我可以通过使用其他选项“焦点”、“焦点输出”等来摆脱它,但我希望它与键一起工作:
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()
我自己也是一个初学者,但在运行代码和调试时,当您使用“key”时,输入字段会获取您当前在键盘上按下的键的值。你的两个函数正在评估值,每次都会失败,因为它不是电子邮件地址。你知道吗
如果您在控制台中查看,您可以看到print(p)正在打印出您当时碰巧按下的任何一个键。你知道吗
相关问题 更多 >
编程相关推荐