检查条目小部件 Tkinter 中的数字输入
Checking for numeric inputs in a Entry Widget Tkinter
我有几个问题
1) 我试图让 Entry
小部件仅限于数字输入。我看过一些关于堆栈溢出的示例,但它们倾向于使用基于 class 的 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)
其次,在我的最终用例中,我正在与半文盲人群打交道,我们只想使用会计师键盘。
我想将焦点转移绑定到数字锁定键。我该怎么做?
如果您的目标是只允许数字出现在条目小部件中,您可以使用 Bryan Oakley 在 this answer:
中详述的方法
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()
我有几个问题
1) 我试图让 Entry
小部件仅限于数字输入。我看过一些关于堆栈溢出的示例,但它们倾向于使用基于 class 的 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)
其次,在我的最终用例中,我正在与半文盲人群打交道,我们只想使用会计师键盘。 我想将焦点转移绑定到数字锁定键。我该怎么做?
如果您的目标是只允许数字出现在条目小部件中,您可以使用 Bryan Oakley 在 this answer:
中详述的方法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()