On Thu, Sep 01, 2011 at 10:37:31AM -0400, Douglas S. Blank wrote: . . . > On 09/01/2011 10:21 AM, �������� wrote: > >def myprint(): > > print root.winfo_pointerxy() > > > >canvas.bind("<Button-1>",myprint) > > When you bind a function to the canvas, it is expecting a function that > takes an argument (which is probably the object to which the binding is > bound). > > So, you could just allow myprint to take an argument, and ignore it: > > def myprint(arg): > print root.winfo_pointerxy() . . . I entirely agree with the counsel Dr. Blank has provided. While I expect the original questioner has all he needs to move forward, I'll provide a bit more detail for the benefit of other readers.
Let's look at "arg", "which is probably the object to which the binding is bound". It's not; it's the detected *event* (from which that object can be calculated, though) <URL: http://www.pythonware.com/library/tkinter/introduction/events-and-bindings.htm >. That's not all. One could temporarily update myprint's definition to be something like def myprint(arg): print "arg is '%s'." % arg print dir(arg) print root.winfo_pointerxy() to have Python's introspection report more information about the argument. And *that* isn't all, either. If one were somehow stranded-on-a-desert-island and unsure how many (not- necessarily-named) arguments were arriving, one could experiment with def myprint(*kw): print kw ...
_______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss