验证 tkinter 输入框中的数据。如果它是数字或字母或电子邮件
verifying data inside tkinter entry box. if its numeric or alpha or an email
from tkinter import *
import os
te=Tk()
te.geometry('300x200')
L1 = Label(text = "User Name").grid(row=1,column=0)
E1 = Entry( te)
E1.grid(row=1,column=2)
L2 = Label(text="full Name").grid(row=2,column=0)
E2 = Entry( te)
E2.grid(row=2,column=2)
L3 = Label(text="email").grid(row=3,column=0)
E3 = Entry( te)
E3.grid(row=3,column=2)
L4 = Label(text="admission no.").grid(row=4,column=0)
E4 = Entry(te)
E4.grid(row=4,column=2)
def adduser():
add=open(E1.get(),"a+")
add.write(E2.get()+":")
add.write(E3.get()+":")
add.write(E4.get()+":")
add.write(E1.get())
add.close()
B5.config(state="disabled")
print('registraion susscefull')
B6=Button(text=" login ",command=main)
B6.grid(row=5,column=1)
def main():
os.system("main.py")
B5=Button(text="register",command=adduser)
B5.grid(row=5,column=1)
te.mainloop()
你好程序员,我需要一些验证方面的帮助 tkinter
所以这就是我需要的:
- 没有 space 应该在用户名中并且至少使用 1 个号码
- 应检查电子邮件 ID 是否使用了 @ 和 .com
- 录取人数只能是整数
- 全名只能是字母
我试过了但没有成功,现在你们是我最后的希望了。请帮忙。我仍在学习并期待您的帮助和代码。
谢谢,祝你有愉快的一天。
看看这个例子:
from tkinter import *
from tkinter import messagebox
root = Tk()
def check(): #function to check
if '@' not in e2.get() or '.com' not in e2.get(): #if @ or .com is present
messagebox.showinfo('Not a valid email address','Enter a valid email address')
else: #if not show error message
messagebox.showinfo('Success','Succesfull!')
e2 = Entry(root)
e2.pack(padx=10,pady=10)
b = Button(root,text='Check mail',command=check)
b.pack(padx=10,pady=10)
root.mainloop()
在此示例中,提供了一个简单的检查来检查其中是否包含“@”或“.com”。
并且,由于您询问了一种只允许字母的方法,请看一下这个简单的验证。
from tkinter import *
from tkinter import messagebox
root = Tk()
def validate(inp):
if inp == "": #to begin typing
return True
elif inp.isalpha(): #to only allow alphabets
return True
elif ' ' in inp: #to allow space in between
return True
else:
return False #dont allow anything else
vcmd = root.register(validate) #register the function
e = Entry(root,validate='all',validatecommand=(vcmd,'%S')) #now add validating to it
e.pack(padx=10,pady=10)
root.mainloop()
要更好地了解验证,请查看 Bryan Oakley 的回答 here
from tkinter import *
import os
te=Tk()
te.geometry('300x200')
L1 = Label(text = "User Name").grid(row=1,column=0)
E1 = Entry( te)
E1.grid(row=1,column=2)
L2 = Label(text="full Name").grid(row=2,column=0)
E2 = Entry( te)
E2.grid(row=2,column=2)
L3 = Label(text="email").grid(row=3,column=0)
E3 = Entry( te)
E3.grid(row=3,column=2)
L4 = Label(text="admission no.").grid(row=4,column=0)
E4 = Entry(te)
E4.grid(row=4,column=2)
def adduser():
add=open(E1.get(),"a+")
add.write(E2.get()+":")
add.write(E3.get()+":")
add.write(E4.get()+":")
add.write(E1.get())
add.close()
B5.config(state="disabled")
print('registraion susscefull')
B6=Button(text=" login ",command=main)
B6.grid(row=5,column=1)
def main():
os.system("main.py")
B5=Button(text="register",command=adduser)
B5.grid(row=5,column=1)
te.mainloop()
你好程序员,我需要一些验证方面的帮助 tkinter
所以这就是我需要的:
- 没有 space 应该在用户名中并且至少使用 1 个号码
- 应检查电子邮件 ID 是否使用了 @ 和 .com
- 录取人数只能是整数
- 全名只能是字母
我试过了但没有成功,现在你们是我最后的希望了。请帮忙。我仍在学习并期待您的帮助和代码。
谢谢,祝你有愉快的一天。
看看这个例子:
from tkinter import *
from tkinter import messagebox
root = Tk()
def check(): #function to check
if '@' not in e2.get() or '.com' not in e2.get(): #if @ or .com is present
messagebox.showinfo('Not a valid email address','Enter a valid email address')
else: #if not show error message
messagebox.showinfo('Success','Succesfull!')
e2 = Entry(root)
e2.pack(padx=10,pady=10)
b = Button(root,text='Check mail',command=check)
b.pack(padx=10,pady=10)
root.mainloop()
在此示例中,提供了一个简单的检查来检查其中是否包含“@”或“.com”。
并且,由于您询问了一种只允许字母的方法,请看一下这个简单的验证。
from tkinter import *
from tkinter import messagebox
root = Tk()
def validate(inp):
if inp == "": #to begin typing
return True
elif inp.isalpha(): #to only allow alphabets
return True
elif ' ' in inp: #to allow space in between
return True
else:
return False #dont allow anything else
vcmd = root.register(validate) #register the function
e = Entry(root,validate='all',validatecommand=(vcmd,'%S')) #now add validating to it
e.pack(padx=10,pady=10)
root.mainloop()
要更好地了解验证,请查看 Bryan Oakley 的回答 here