【问题标题】:Callback for tkinter Entry only executes oncetkinter 条目的回调仅执行一次
【发布时间】:2021-02-03 17:49:01
【问题描述】:

每当我的 tkinter 窗口中的条目发生更改时,我都希望调用一个函数。因为我不希望在 used 仍在键入时调用该函数,所以我为 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()

【问题讨论】:

    标签: tkinter python-3.7 tkinter-entry


    【解决方案1】:

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

    【讨论】:

    • 谢谢,我刚刚找到一个回答它的线程
    【解决方案2】:

    我终于找到了答案。验证功能必须返回 True 或 False,否则使用一次后关闭。

    看到这个帖子:Interactively validating Entry widget content in tkinter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 2022-10-30
      相关资源
      最近更新 更多