我在这里有几行代码来验证我的 entry
小部件,该小部件工作正常,但在删除内容后并希望将验证设置回来时,它不起作用。删除后,我可以输入text
我不希望该条目被接受。
from tkinter import *
def MoneyValidation(S):
if S in ['0', '1', '2', '3', '4', '5']:
return True
root.bell()
return False
def delete():
vcmd_money2 = (root.register(MoneyValidation), '%S')
e.config(invcmd="keys", vcmd=vcmd_money2)
e.delete(0, END)
e.delete(0, END)
vcmd_money = (root.register(MoneyValidation), '%S')
e.config(validate="key", vcmd=vcmd_money)
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()
最佳答案
我认为你让这种方式变得不必要的困难。只需关闭验证,删除文本并再次打开验证即可:
def delete():
e.config(validate="none")
e.delete(0, END)
e.config(validate="key")
关于python - 删除内容后如何设置 tkinter 条目验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50702674/