Python Tkinter输入数据的验证
我正在为一个计算项目开发一个divelog软件。我需要一种方法来验证用户通过Tkinter输入的数据。我认为最好的方法是在之后验证数据,如果数据不正确,则创建一个错误消息窗口,让用户重新输入数据。 有人知道这样做的方法吗? 这是指向我用于数据输入的代码的粘贴箱的链接:这是我迄今为止尝试过的:Python Tkinter输入数据的验证,python,tkinter,Python,Tkinter,我正在为一个计算项目开发一个divelog软件。我需要一种方法来验证用户通过Tkinter输入的数据。我认为最好的方法是在之后验证数据,如果数据不正确,则创建一个错误消息窗口,让用户重新输入数据。 有人知道这样做的方法吗? 这是指向我用于数据输入的代码的粘贴箱的链接:这是我迄今为止尝试过的: E1_data = None #These four lines initialise the variables for data input using Tkinter E2_data = None E
E1_data = None #These four lines initialise the variables for data input using Tkinter
E2_data = None
E3_data = None
E4_data = None
def tkinput():
root = Tk()
label1 = Label(root, text="Dive Number: ")#label for the first data entry
E1 = Entry(root, bd = 5)
label2 = Label(root, text="Time In (24hr clock): ")#label for the second data entry
E2 = Entry(root, bd = 5)
label3 = Label(root, text="Time Out (24hr clock): ")#label for the third data entry
E3 = Entry(root, bd = 5)
label4 = Label(root, text="Max Depth: ")#label for the fourth data entry
E4 = Entry(root, bd = 5)
def get_data(): #Subroutine for getting the data and assigning it to a variable
global E1_data
E1_data = E1.get()
global E2_data
E2_data = E2.get()
global E3_data
E3_data = E3.get()
global E4_data
E4_data = E4.get()
root.destroy()
#these next lines render all of the required items onto the input window
label1.pack()
E1.pack()
label2.pack()
E2.pack()
label3.pack()
E3.pack()
label4.pack()
E4.pack()
submit = Button(root, text = "Submit", command = get_data) #creates the submit button to be displayed on the input window
submit.pack(side = BOTTOM) #displays the button at the bottom of the input window
root.mainloop() #runs the input module
tkinput()
关键词
输入验证
在ddg或谷歌中,您可以直接访问
文件内容如下:
您可以将验证命令/函数/方法添加到条目小部件本身,就像命令回调一样
这正是你想要的,所以我想你没有花任何时间在研究上
是的,Effbot链接是从1998年开始的,但代码仍然有效。更好的方法可能是直接在Tkinter中实现验证命令。这似乎是我唯一的答案。你能总结一下这些链接是怎么说的吗?也许这篇文章没有做太多的研究,但惩罚出现在这篇文章上的未来研究者似乎不公平:像这样更好;是啊,看起来好多了。我跟踪了effbot链接,它说:Tkinter的较新版本支持validate和validatecommand选项,可以用来代替额外的变量。这似乎是相关的-这与添加您描述的回调相同吗?我这样问是因为effbot链接是1998年的,前几天我因为发布了一个带有过时信息的1998年effbot链接而遇到了麻烦。我添加了关于该主题的附加信息