user1229351 user1229351 - 6 months ago 30
Python Question

simple key pressed event in python tkinter app

I'm new to python and Tkinter. I'm looking for a small GUI app which contains a textbox on it and if any change occurs in the textbox content then it fires up an event for me to do something. I tried but failed to write such an event.

Any help will be appreciated.

Answer

You can use bind the <Key> event to a callback like this:

import Tkinter as tk

class MyApp(object):
    def __init__(self, master):
        self.text = tk.Text(master)
        self.text.bind('<Key>', self.callback)
        self.text.pack()
        self.text.focus()

    def callback(self, event):
        print('{k!r}'.format(k = event.char))

root = tk.Tk()
app = MyApp(root)
root.mainloop()

(Like Steven Rumbalski, I'm not quite sure what you intended by 'textbox'. Happily, the above code will still work if you change tk.Text to tk.Entry.)