On Wed, 13 Jul 2011 13:53:57 -0400, Lic. José M. Rodriguez Bacallao <jmr...@gmail.com> 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 _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt