Python Tkinter条目加载内容不正确

Python Tkinter条目加载内容不正确,python,tkinter,Python,Tkinter,我面临一个问题。我正在运行这个代码 import tkinter as tk root = tk.Tk() def check(): if len(e.get().split("a")) > 1: print("contains a") e = tk.Entry(frame1) e.grid(row=4,column=1,columnspan=2,padx = (10,10), pady=(5,10), sticky="w e") e.bind("<Key>

我面临一个问题。我正在运行这个代码

import tkinter as tk

root = tk.Tk()
def check():
   if len(e.get().split("a")) > 1:
      print("contains a")

e = tk.Entry(frame1)
e.grid(row=4,column=1,columnspan=2,padx = (10,10), pady=(5,10), sticky="w e")
e.bind("<Key>",check)
将tkinter作为tk导入
root=tk.tk()
def check():
如果len(e.get().split(“a”))>1:
打印(“包含a”)
e=tk.Entry(frame1)
e、 网格(行=4,列=1,列span=2,padx=(10,10),pady=(5,10),sticky=“we”)
e、 绑定(“,检查)
当我在条目上键入“a”时,我不会得到任何打印内容。我将通过提示第二个字符来获得结果。我认为这是因为函数在内容实际更改之前执行。我试图在函数的开头添加一个计时器,但它没有任何作用。 我想通过输入第一个“a”得到结果。我该怎么办

我认为这是因为函数在内容实际更改之前执行

你说得对。如果希望回调能够看到刚才键入的字符,则应创建一个StringVar并绑定到该字符,而不是绑定到小部件上的
“”
事件

import tkinter as tk

frame1 = tk.Tk()
def check(*args):
    if "a" in s.get():
        print("contains a")

s = tk.StringVar()
e = tk.Entry(frame1, textvariable=s)
s.trace("w", check)
e.grid(row=4,column=1,columnspan=2,padx = (10,10), pady=(5,10), sticky="w e")
frame1.mainloop()

这似乎是一种奇怪的方法来检查字符是否在字符串中。如果e.get()中的“a”,为什么不执行
?您的总体目标是什么?我敢打赌,如果你给我们一个更具体的目标,我们可以告诉你一个更好的方法。这段代码无法运行。我算了至少三个问题。你的最终目标是什么?您是在进行输入验证还是某种数据处理?输入验证有一些特殊的选项。我试图实时检查输入是否包含“a”。你在给@BryanOakley买什么特别的选择?很好。我不知道StringVar()的事。还有一个问题,如何删除海龟模块的绘图动画。乌龟。spped(0)和乌龟。速度(“最快”)对我来说不是很好。我希望我的画能马上画出来。谢谢