Search code examples
pythontkintertkinter-entry

Python: How to get an updated Entry text to use in a command binded to it?


Consider the following code:

text = Entry(); text.pack()
def show(e):
    print text.get()
text.bind('<Key>', show)

Let's say I put the letters ABC in the Entry, one by one. The output would be:

>>> 
>>> A
>>> AB

Note that when pressing A, it prints an empty string. When I press B, it prints A, not AB. If i don't press anything after C, it will never be shown. It seems that the Entry content is only updated after the binded command has returned, so I can't use the actual Entry value in that function.

Is there any way to get an updated Entry value to use inside a binded command?


Solution

  • You could replace the <Key> event with the <KeyRelease> event. That should work.

    Here is a list of events: http://infohost.nmt.edu/tcc/help/pubs/tkinter/events.html#event-types