[Tkinter-discuss] Combining events?

Michael Lange klappnase at web.de
Sat Jul 19 13:21:19 CEST 2014


Hi,

On Fri, 18 Jul 2014 16:54:34 -0600
Bob Greschke <bob at passcal.nmt.edu> wrote:

> I have a huge program...several huge programs...and I keep writing
> duplicate sets of calls for <Return> and <KP_enter>.  I'm tired of it,
> even though they are already all written.  Is there any way to combine
> those (those two, specifically) into one bind like
> 
> x.bind(("<Return>", "<KP_Enter"), command = .....?
> 
> I know you can't do that, but something like that on a global scale
> (both figuratively, and programmatically).  Some little line of code at
> the beginning of the program that redirects the <KP_Enter> to the
> <Return> event when some field or whatever is specifically looking for
> either return key to be pressed?.

you could use event_generate() and bind_class(), as in this example:

from Tkinter import *
root = Tk()

def on_kp_enter(event):
    event.widget.event_generate('<Return>')
root.bind_class('Button', '<KP_Enter>', on_kp_enter)

def on_return(event):
    print('Return')

b = Button(root, text='Push me')
b.pack()
b.bind('<Return>', on_return)
root.mainloop()

Regards

Michael

.-.. .. ...- .   .-.. --- -. --.   .- -. -..   .--. .-. --- ... .--. . .-.

Lots of people drink from the wrong bottle sometimes.
		-- Edith Keeler, "The City on the Edge of Forever",
		   stardate unknown


More information about the Tkinter-discuss mailing list