[Tkinter-discuss] Combining events?
Bob Greschke
bob at passcal.nmt.edu
Sat Jul 19 19:21:00 CEST 2014
On 2014-07-19, at 05:21, Michael Lange <klappnase at web.de> wrote:
> 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
> _______________________________________________
> Tkinter-discuss mailing list
> Tkinter-discuss at python.org
> https://mail.python.org/mailman/listinfo/tkinter-discuss
You are one smart guy! This helps a lot.
I can tolerate doing
LEnt = Entry(stuff stuff stuff)
LEnt.bind("<Return>", "call call call")
LEnt.bind("<KP_Enter>", on_kp_enter)
I can't really do the bind_class, because not all fields respond to a Return/Enter.
What I'm trying to do is eliminate duplicating the "call call call" part like I have now. Some/Most of the calls are kinda complex (a lot of argument passing to the handlers). I'd seen that event_generate() a long time ago, but I never figured out how to use it from the Grayson Bible. Now as I rescan that portion of the book I realize you may have made me dangerous. :)
Thanks!
Bob
More information about the Tkinter-discuss
mailing list