[vtkusers] AddObserver with Python
Charl Botha
c.p.botha at tudelft.nl
Fri May 2 03:02:06 EDT 2008
On Thu, May 1, 2008 at 9:49 PM, Doug Hackworth
<doug.hackworth at vanderbilt.edu> wrote:
> Also: When I run my program with the plane widget implemented as above,
> the widget seems to work fine, but I get the error:
>
> TypeError: MyCallbackFunction() takes exactly 3 arguments (2 given)
>
> Which two arguments are getting passed automatically? Can I add more?
The two arguments are object_binding and event_name. If you really
need to send more data in, you could for example inject variables into
the object namespace. For example:
my_object.some_string = 'hello world'
my_object.AddObserver('SomeEvent', MyCallbackFunction)
def MyCallbackFunction(object_binding, event_name):
print object_binding.some_string
You could also use a lambda statement in your AddObserver call to pass
things through that are already defined at that time:
some_string = 'hello world'
my_object.AddObserver('SomeEvent', lambda o, e, mystring=some_string:
MyCallbackFunction(o,e,mystring))
Good luck,
Charl Botha
More information about the vtkusers
mailing list