Python 检查输入窗口小部件Tkinter中的数字输入

Python 检查输入窗口小部件Tkinter中的数字输入,python,tkinter,widget,tkinter-entry,Python,Tkinter,Widget,Tkinter Entry,我有几个问题 1) 我正在尝试将条目小部件限制为仅数字输入。我看到了一些关于堆栈溢出的示例,但它们倾向于使用基于类的Tkinter编码,我正在以通常的方式进行 E=Entry(t3, bg='gray', textvariable=weekly_savings[num], validate='focus', validatecommand=MoneyValidation)) I am not sure how to implement this money validation. The win

我有几个问题 1) 我正在尝试将
条目
小部件限制为仅数字输入。我看到了一些关于堆栈溢出的示例,但它们倾向于使用基于类的Tkinter编码,我正在以通常的方式进行

E=Entry(t3, bg='gray', textvariable=weekly_savings[num], validate='focus', validatecommand=MoneyValidation))
I am not sure how to implement this money validation. The window code is as follows
t3=Toplevel(root)
bg='gold'
t3.title(u"\u092c\u0939\u0940 \u0916\u0924\u093e")
t3.geometry('800x450+100+50')
t3.transient(root)
t3.configure(background=bg)
t3.overrideredirect(True)
其次,在我的最终用例中,我正在与一个半文盲群体合作,我们只希望使用会计师键盘。
我想将焦点转移绑定到num lock键。如何做到这一点?

如果您的目标是只允许数字出现在条目小部件中,您可以使用Bryan Oakley在以下内容中详细介绍的方法:


参考资料:

通过“仅限数字输入”您的意思是在键入时,甚至没有将所有非数字字符添加到条目中吗?为什么不
返回S.isdigit()
?这会认为<代码> <代码>是一个数字输入吗?
def MoneyValidation(S):
    if S in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
        return True
    t3.bell() # .bell() plays that ding sound telling you there was invalid input
    return False

vcmd = (t3.register(MoneyValidation), '%S')
E = Entry(t3, bg='gray', validate='key', vcmd=vcmd)
E.pack()
def MoneyValidation(S):
    if S.isdigit():
        return True
    else:
        return False

reg = t3.register(MoneyValidation

E = Entry(t3, bg='gray', validate='key',validatecommand=(reg, %P))
E.pack()