[Tkinter-discuss] Combining events?

Bryan Oakley bryan.oakley at gmail.com
Sat Jul 19 19:37:36 CEST 2014


Have you considered creating a subclass of entry? Then your code is simply:

    LEnt = CustomEntry(stuff stuff stuff)

You can then put all the bind magic in the constructor of CustomEntry.



On Sat, Jul 19, 2014 at 12:21 PM, Bob Greschke <bob at passcal.nmt.edu> wrote:

>
> 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
>
>
>
> _______________________________________________
> Tkinter-discuss mailing list
> Tkinter-discuss at python.org
> https://mail.python.org/mailman/listinfo/tkinter-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tkinter-discuss/attachments/20140719/9e94c38e/attachment.html>


More information about the Tkinter-discuss mailing list