ok, I see now, a couple of questions: 1- and how to use observe function as a decorator 2- there is any way that the observer/setter method of a property be called when setting the initial value
On Wed, Jul 13, 2011 at 2:24 PM, Phil Thompson <[email protected]> wrote: > On Wed, 13 Jul 2011 13:53:57 -0400, Lic. José M. Rodriguez Bacallao > <[email protected]> wrote: >> yes, I know I can't think in interfaces like base classes but, as I >> read in documentation that attributes are automatically added to te >> concrete implementation of the interface, well, look at this sample: >> >> class ITest(Interface): >> >> id = Str() >> >> >> @implements(ITest) >> class Test(Model): >> >> @id.observer >> def on_change(self, change): >> print 'changing...' >> >> >> if __name__ == '__main__': >> test = Test() >> test.id = 'xxx' >> print test.id >> >> it give me this error: >> >> Traceback (most recent call last): >> File "/home/jmrbcu/work/dev-projects/imagis/src/imagis/ui/widget.py", >> line 49, in <module> >> class Test(Model): >> File "/home/jmrbcu/work/dev-projects/imagis/src/imagis/ui/widget.py", >> line 51, in Test >> @id.observer >> AttributeError: 'builtin_function_or_method' object has no attribute >> 'observer' >> >> and if I change @id.observer to @ITest.id.observer ten the observer is >> never called. > > ...because if you are using that pattern then the name of the method must > be the same as the name of the attribute, ie. 'id' instead of 'on_change'. > > Phil > -- Lic. José M. Rodriguez Bacallao Centro de Biofisica Medica ----------------------------------------------------------------- Todos somos muy ignorantes, lo que ocurre es que no todos ignoramos lo mismo. Recuerda: El arca de Noe fue construida por aficionados, el titanic por profesionales ----------------------------------------------------------------- _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
