Tkinter条目的验证仅在上运行

2024-06-16 11:30:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是在努力实现一个进入整数的工作。据我所知:

  • entry小部件有一个参数validate,它选择何时进行验证。在
  • 参数validatecommand决定如何限制数据
  • 当validate等于'key'时,在每次击键时,将根据validatecommand中指定的规则检查条目的字符串

但是,在尝试之后,我遇到了一个问题,即在单击条目之前,它只验证条目中的字符串。在

from tkinter import*
root = Tk()

def equationpage(root):
    vcmd = root.register(validate)
    A_str = IntVar()
    A_str.set(1)
    a = Entry(root,width="2",textvariable=A_str,validate = "key",validatecommand = (vcmd,'%p'))
    a.place(x=0,y=0)
def validate(inp):
    try:
        float(inp)
    except:
        return False
    return True
equationpage(root)
mainloop()

上面的代码没有进行任何验证,它允许我在条目中输入任何内容。如果我更改了上面的代码,使条目没有默认值,那么我最终无法在条目中键入任何内容,因为它一直拒绝输入。在

我怎样才能解决这个问题?在


Tags: key字符串代码内容参数returndef条目