[英]Python Tkinter validation command not working after deleting entry
在我的程序中,使用了delete命令后,条目小部件将不再验证-其想法是,如果满足特定要求,则将自动删除框中的文本,但会继续验证输入。
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()
当您从验证功能中编辑输入小部件时,输入小部件会自动将validate
选项重置为“无”。
您可以在控制权返回到mainloop
后使用after_idle
重置validate
选项来重新启用验证
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.