This problem involves a callback method while using 'bind'. The bind statement 
and the callback function are both in a module imported to the main program. 
Relevant code snippets are as follows:

#++++ begin snippet

# main code
<code>
import module_Editor
.
class MyClass():
<code>
    def editor(self):

        module_Editor.my_Editor(self,self.frameParent)
<code>
# end of main code

# module 'module_Editor'
<imports>
def my_Editor(self,parentFrame):
<code>
    self.textMyCode.bind(
        "<KeyPress-Return>",
        handlerTextLineNumbersReturn(self)
        )
<code>
def handlerTextLineNumbersReturn(self,event):
    def temp():
    
        print '\n** In handlerTextLineNumbersReturn'

    return temp
<code>
# end of module 'module_Editor'

# ++++ end snippet

When the bind callback handler is called, the following error is returned:

++++ begin error
Exception in Tkinter callback
Traceback (most recent call last):
 File "c:\Python251_102507\lib\lib-tk\Tkinter.py", line 1403, in __call__
    return self.func(*args)
TypeError: tempDef() takes no arguments (1 given)

++++ end error

The above approach works for widgets in the module calling callback handlers 
that return a def like the above, but bind statements apparently do not like 
this approach for some reason.

Any ideas on what I'm doing wrong here? Maybe a "*args" needs to go somewhere 
in the calling or def statements? If so, where does it go?

Daniel
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to