[PyQt] properties and interfaces with dip 0.3

Lic. José M. Rodriguez Bacallao jmrbcu at gmail.com
Wed Jul 13 19:56:52 BST 2011


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
<phil at riverbankcomputing.com> wrote:
> On Wed, 13 Jul 2011 13:53:57 -0400, Lic. José M. Rodriguez Bacallao
> <jmrbcu at 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
>



-- 
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
-----------------------------------------------------------------


More information about the PyQt mailing list