[Tkinter-discuss] Canvas tag bindings not going away?

Bob Greschke bob at passcal.nmt.edu
Tue Sep 1 22:08:42 CEST 2009


> If I understand you correctly, what you describe is what I think that
> tag bindings are supposed to do. I tried the following:
>
>>>> from Tkinter import *
>>>> c = Canvas()
>>>> c.pack()
>>>> def test(ev):
> ...     print 'foo'
> ...
>>>> c.tag_bind('tag_foo', '<1>', test)
>>>> c.create_rectangle(0, 0, 100, 100, fill='blue', tags=('tag_foo'))
> 1
>>>> foo
> foo
> foo
> foo
>
> The "foo"s at the end of the snippet are of course from clicking the
> blue rectangle. The point here is, that the tag-binding is obviously
> active without any items being created, and I believe that is exactly
> what it is for; if you want the binding to be removed when the item is
> deleted, you should bind to the item-id instead, or maybe use
> tag_unbind() to remove the bindings.
>
> I hope this helps
>
> Michael

You are too smart.  I've only been goofing with this stuff for about 7  
years.  Looking through my code I now understand that I didn't know  
anything. :)  I've been binding to the tag in some places and to the  
"ID" of the create_x item in others.  NOW I get it!  That's exactly  
what was going on.  A big thanks!

Bob



More information about the Tkinter-discuss mailing list