[Tkinter-discuss] Unwanted Text widget bindings

Michael Lange klappnase at web.de
Thu Apr 14 21:47:00 CEST 2005


On Thu, 14 Apr 2005 13:16:11 -0400
Cam <camfarnell at cogeco.ca> wrote:

> Hello list,
> 
> I'm running on a Debian/Gnome Linux box.
> 
> The "Text" widget comes with a bunch of free bindings to various control 
> codes, <Control-a> for "home", <Control-B> for "cursor left" and so on, 
> none of which I want for my application. Most of these I can get rid of 
> by doing w.unbind_class('Text','<Control-whatever>'), but the bindings 
> for Control-x (cut), Control-c (copy) and Control-v (paste) are 
> different; they persist even after unbind, unbind_class and unbind_all.
> 
> I know you CAN get rid of them because Guido manages it just fine in 
> Idle. However, several hours of pouring over the Idle source has not 
> left me any closer to figuring out just how Idle manages to defeat these 
> bindings.
> 
> If any of you list members know what the secret is or can point me to 
> some documentation that covers this issue I would *very* much appreciate it.
> 
> Thanks
> 
> Cam Farnell

You can get rid of the default bindings if you replace them with a "dummy" callback that prevents
the event from being propagated to the widget:

>>> r=Tk()
>>> t=Text(r)
>>> t.pack()
>>> t.bind('<Control-x>', lambda event : 'break')

I hope this helps

Michael


More information about the Tkinter-discuss mailing list