如何解决在tkinter输入框中验证数据如果其数字或字母或电子邮件
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
中的验证方面的帮助,所以这是我需要的:
我尝试过但没有成功,现在你们是我对此的最后希望。请帮忙。我仍在学习,期待您的帮助和代码。
谢谢,祝你有美好的一天。
解决方法
看看这个例子:
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 Oakleys的答案here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。