输入字段的验证
Validation of Enter Fields
Interactively validating Entry widget content in tkinter
上面的 link 解释了如何进行验证。
我正在尝试做同样的事情。但不知何故我做不到。
这是一个10位数字的字符串。前两个是字母,接下来的两个数字然后再接下来的两个将是字母,然后其余的都是数字。
例如 MH02UH2012.
我遇到的另一个问题是,当我 运行 这是 S 的打印时,只有在没有打印之后,我才出现在前三个输入中。有时它只打印第一个输入的变量。我无法理解问题所在
import tkinter
tk=tkinter.Tk()
def only_numeric_input(P,S,i):
i = int(i)
print (i, S)
if S == " ":
return False
elif i < 2:
if not S.isdigit():
return True
elif i > 5:
if S.isdigit():
return True
else:
return False
elif i > 9:
return False
e1=tkinter.Entry(tk)
e1.grid(row=0,column=0)
c=tk.register(only_numeric_input)
e1.configure(validate="key",validatecommand=(c,'%P', "%S", "%i"))
tk.mainloop()
only_numeric_input
函数的条件语句中存在问题。试试下面的 only_numeric_input
函数。
def only_numeric_input(P,S,i):
i = int(i)
print (i, S)
if S == " ":
return False
if i < 2 or (i>3 and i<6):
if S.isalpha() and S.isupper():
return True
else:
return False
elif i<10:
if S.isdigit():
return True
else:
return False
elif i > 9:
return False
Interactively validating Entry widget content in tkinter
上面的 link 解释了如何进行验证。
我正在尝试做同样的事情。但不知何故我做不到。
这是一个10位数字的字符串。前两个是字母,接下来的两个数字然后再接下来的两个将是字母,然后其余的都是数字。 例如 MH02UH2012.
我遇到的另一个问题是,当我 运行 这是 S 的打印时,只有在没有打印之后,我才出现在前三个输入中。有时它只打印第一个输入的变量。我无法理解问题所在
import tkinter
tk=tkinter.Tk()
def only_numeric_input(P,S,i):
i = int(i)
print (i, S)
if S == " ":
return False
elif i < 2:
if not S.isdigit():
return True
elif i > 5:
if S.isdigit():
return True
else:
return False
elif i > 9:
return False
e1=tkinter.Entry(tk)
e1.grid(row=0,column=0)
c=tk.register(only_numeric_input)
e1.configure(validate="key",validatecommand=(c,'%P', "%S", "%i"))
tk.mainloop()
only_numeric_input
函数的条件语句中存在问题。试试下面的 only_numeric_input
函数。
def only_numeric_input(P,S,i):
i = int(i)
print (i, S)
if S == " ":
return False
if i < 2 or (i>3 and i<6):
if S.isalpha() and S.isupper():
return True
else:
return False
elif i<10:
if S.isdigit():
return True
else:
return False
elif i > 9:
return False