我有一个带有输入框的 tkinter GUI,我想只允许输入数字。能否有人解释一下验证(validation)中每个命令/代码行的含义?我不理解 vcmd 变量及其它的'%i' '%s'是什么意思。谢谢 :)
更新: 我要在另一个应用程序中使用这个 vcmd 命令,但并不完全理解它。以下是我的验证代码:
我不明白为什么在这段代码中我需要所有这些内容:
我也想知道self.master.register的作用,请问您能解释一下吗?我还是不太明白。
更新: 我要在另一个应用程序中使用这个 vcmd 命令,但并不完全理解它。以下是我的验证代码:
def validate(self, action, index, value_if_allowed, prior_value, text, validation_type, trigger_type, widget_name):
if not int(action):
return True
elif text in '0123456789.-+':
try:
float(value_if_allowed)
return True
except ValueError:
return False
else:
return False
我不明白为什么在这段代码中我需要所有这些内容:
action, index, value_if_allowed, prior_value, text, validation_type, trigger_type, widget_name
为什么我需要这些特定的验证代码才能使其正确运行,它们有什么用处? 您提供的文档很有道理,但是对于我特定的代码来说,一些'%s','%i'之类的东西似乎是不必要的,但只有包含所有这些内容它才能正常工作:
vcmd = (self.master.register(self.validate), '%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W')
我也想知道self.master.register的作用,请问您能解释一下吗?我还是不太明白。