我试图限制输入到条目小部件中的数字,因此它必须是 4 个整数长,在值 0000 到 9999 之间,实际上是一个 4 位数的密码。这个类工作正常,但是,关于以 0 开头的数字有一个小问题。如果要输入数字 0000,那么它将只取值 0 而不是实际值 0000。有人可以帮我指出我的意思吗做错了。
class ConstrainedEntry(ttk.Entry):
def __init__(self, *args, **kwargs):
ttk.Entry.__init__(self, *args, **kwargs)
vcmd = (self.register(self.on_validate),"%P")
self.configure(validate="key", validatecommand=vcmd)
def disallow(self):
self.bell()
def on_validate(self, new_value):
try:
if new_value.strip() == "": return True
value = int(new_value)
if value < 0 or value > 9999:
self.disallow()
return False
except ValueError:
self.disallow()
return False
return True
谢谢