Phil wrote: > Again, thank you for reading this. > > I would like a function to be called when I enter text and then tab to the > next entry box. I've been trying to follow the answers to similar > questions in Stack Overflow but I've become hopelessly confused because of > the different answers given to seemingly the same question. > > I have created a row of entry boxes and a matching function like this: > > for i in range(8): > self.numbers[i]= Entry(master, width=4, justify=CENTER, > foreground="gray") self.numbers[i].grid(row=16, column=i) > self.numbers[i].bind('StringVar()', self.my_function) > > def my_function(event): > print("function called")
To be consistent with the other code snippet this should be a method, not a function. > > The function is not called and I know that the binding of the function to > the entry boxes is not the correct method. What am I missing? > What the ... did you expect from the "StringVar()" argument? You can find valid events here: http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/event-types.html Here's a simple example without a class: import Tkinter as tk def welcome(event): print("Welcome") def bye(event): print("Bye!") root = tk.Tk() for i in range(3): entry = tk.Entry(root) entry.bind("<FocusIn>", welcome) entry.bind("<FocusOut>", bye) entry.pack() root.mainloop() If you want to pass the index of the entry, say, you can use the extra-arguments trick, http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/extra-args.html also shown in one of my previous answers. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor