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 - [email protected]
http://mail.python.org/mailman/listinfo/tutor