oval

Ben Bush pythonnew at gmail.com
Sun Dec 4 08:39:32 EST 2005


On 12/4/05, Diez B. Roggisch <deets at nospam.web.de> wrote:
> Ben Bush wrote:
> > I tested the following code and wanted to get the message of "oval2
> > got hit" if I click the red one. But I always got "oval1 got hit".
> > from Tkinter import *
> > root=Tk()
> > canvas=Canvas(root,width=100,height=100)
> > canvas.pack()
> > a=canvas.create_oval(10,10,20,20,tags='oval1',fill='blue')
> > b=canvas.create_oval(50,50,80,80,tags='oval2',fill='red')
> > def myEvent(event):
> >     if a:
>
> Here is your problem. a is a name, bound to some value. So - it is true,
> as python semantics are that way. It would not be true if it was e.g.
>
> False, [], {}, None, ""
>
>
> What you want instead is something like
>
> if event.source == a:
>     ...
>
> Please note that I don't know what event actually looks like in Tkinter,
> so check the docs what actually gets passed to you.

got AttributeError: Event instance has no attribute 'source'



More information about the Python-list mailing list