将<Key>绑定到Tkinter中的条目

Jak*_*kob 5 python binding tkinter

当我将事件绑定到条目并读取内容时,更改会以某种方式滞后.我想"动态更新"另一个条目,一旦条目1改变,它就会显示各种条目内容的计算结果.但不知何故,这种变化并未立即得到认可,只有前述的变化.不知道问题是否清楚:如果我进行了n次更改,则会识别出更改为n-1的更改.如果数字是1000并且我按退格两次,则entry_1.get()将产生100而不是10.希望你明白我的意思现在:)

代码段(简化):

self.entry_1.bind('<Key>',lambda d: self.update())

def update(self):
    success=True
    try:
        float(self.entry_1.get())
        float(self.entry_1.get())
    except ValueError: success=False
    if success:

        self.entry_3.delete(0,"end")
        x=(float(self.entry_1.get())*float(self.entry_2.get())
        self.entry_3.insert("end", "%g" %x)
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

Bry*_*ley 5

原因是由于处理事件的顺序.该顺序由窗口小部件的"绑定标记"(或绑定标记)定义.默认情况下,订单是widget,class,toplevel,"all".例如,如果您在窗口小部件和类上以及包含窗口小部件的顶层窗口上绑定了绑定,并且在特殊情况下为"all",则绑定将按此顺序触发.

我在这个问题的答案中给出了一个冗长的问题,这个问题是如何在Tkinter Text小部件中绑定自我事件后它将被Text小部件绑定?