擅长:python、mysql、java
<p>如果修改验证规则以允许同时删除多个字符,则根本不需要禁用验证。如果键入“123”并运行<code>e.delete(0, END)</code>而不禁用验证,则<code>MoneyValidation</code>的值将为“123”。如果允许,可以单独验证这些数字的变化。在</p>
<pre><code>from tkinter import *
def MoneyValidation(S):
if all(c in ['0', '1', '2', '3', '4', '5'] for c in S):
return True
root.bell()
return False
def delete():
e.delete(0, END)
root = Tk()
vcmd_money = (root.register(MoneyValidation), '%S')
e = Entry(root, validate="key", vcmd=vcmd_money)
e.pack()
b = Button(text="DELETE", command=delete)
b.pack()
root.mainloop()
</code></pre>
<p>另一个好处是,使用这种方法,用户可以突出显示他的数字的一部分,并用退格键删除它。如果您保持MoneyValidation的原样,并且只在delete()调用期间禁用了验证,那么这是不可能的。在</p>