繁体   English   中英

删除条目后,Python Tkinter验证命令不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM