在我的程序中,使用了delete命令后,条目小部件将不再验证-其想法是,如果满足特定要求,则框中的文本将被自动删除,但会继续验证输入。 / p>
from tkinter import *
TEXT_TO_MATCH = 'APPLE'
def validate(userinput):
if userinput == TEXT_TO_MATCH:
print(True)
input_box.delete(0, END)
else:
print(False)
return True
window = Tk()
window.title('Delete after validation')
reg = window.register(validate)
input_box = Entry(window, validatecommand=(reg, '%P'), validate='all')
input_box.pack()
window.mainloop()
答案 0 :(得分:1)
当您从验证功能中编辑条目小部件时,条目小部件会自动将validate
选项重置为“无”。
在控制权返回到after_idle
后,您可以使用validate
重设mainloop
选项来重新启用验证
def validate(userinput):
if userinput == TEXT_TO_MATCH:
input_box.delete(0, END)
input_box.after_idle(lambda: input_box.configure(validate="all"))
return True