tkinter项的回调只执行一次

tkinter项的回调只执行一次,tkinter,python-3.7,tkinter-entry,Tkinter,Python 3.7,Tkinter Entry,每当tkinter窗口中的条目发生更改时,我希望调用一个函数。因为我不希望在使用的函数仍在键入时调用该函数,所以我为validate属性选择了“focusout”。为了澄清,我从另一个线程中得到了“focusout”的想法,所以我不确定它到底是做什么的 函数validate只调用一次,但不会再次调用。为什么呢 最低工作示例如下: import tkinter as tk def validate(): print("Checked!") root =

每当tkinter窗口中的条目发生更改时,我希望调用一个函数。因为我不希望在使用的函数仍在键入时调用该函数,所以我为validate属性选择了“focusout”。为了澄清,我从另一个线程中得到了“focusout”的想法,所以我不确定它到底是做什么的

函数validate只调用一次,但不会再次调用。为什么呢

最低工作示例如下:

 import tkinter as tk


 def validate():
     print("Checked!")


 root = tk.Tk()
 sv1 = tk.StringVar()
 sv2 = tk.StringVar()
 e1 = tk.Entry(root, textvariable=sv1, validate="focusout", validatecommand=validate)
 e2 = tk.Entry(root, textvariable=sv2, validate="focusout", validatecommand=validate)

 e1.pack()
 e2.pack()

 root.mainloop()

验证函数必须返回True或False,否则将被禁用。

我终于找到了答案。validate函数必须返回True或False,否则在一次使用后将被关闭


查看此帖子:

谢谢,我刚找到一条回复此帖子的帖子