Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter输入数据的验证_Python_Tkinter - Fatal编程技术网

Python 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

我正在为一个计算项目开发一个divelog软件。我需要一种方法来验证用户通过Tkinter输入的数据。我认为最好的方法是在之后验证数据,如果数据不正确,则创建一个错误消息窗口,让用户重新输入数据。 有人知道这样做的方法吗? 这是指向我用于数据输入的代码的粘贴箱的链接:这是我迄今为止尝试过的:

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链接而遇到了麻烦。我添加了关于该主题的附加信息