[PySide] strange QObject bahaviour on Python 3.2 (Windows and Linux)

Roman Lacko backup.rlacko at gmail.com
Wed Sep 12 13:41:32 CEST 2012


here is more better example, see comments:

from PySide import QtCore
class MyObject(QtCore.QObject):
    Instance = "default value"

# This will print "new value"
MyObject.Instance = "new value"
print(MyObject.Instance)

# This will print "default value"
MyObject.Instance
MyObject.Instance = "new value"
print(MyObject.Instance)

When I access the MyObject.Instance, than the value of
MyObject.Instance is allways "default value" !

R.

2012/9/12 Thomas Pietrowski <thopiekar at gmail.com>:
> Hey,
>
> I'm not familiar to Python3, but what happens, when you replace:
>
> def instance(cls):
>
> with:
>
> def instance(self, cls):
>
> For me it seems that it uses cls as self in that function, if self is not
> set in the function of your class.
> But, as I said, I'm not sure if that could be your solution ;-)
>
> Am 12.09.2012 12:20 schrieb "Roman Lacko" <backup.rlacko at gmail.com>:
>>
>> Hi,
>>
>> I have discovered strange bahaviour while testing qtdemo.py under Python
>> 3.2.
>> Plase look at sample code and the comment prefixed XXX:
>>
>> >>>
>> from PySide import QtCore
>>
>> class MenuManager(QtCore.QObject):
>>
>>     pInstance = None
>>
>>     @classmethod
>>     def instance(cls):
>>         if cls.pInstance is None:
>>             cls_inst = cls()
>>             cls.pInstance = cls_inst
>>             # XXX: the cls.pInstance is None but cls_inst is NOT None !!!
>>
>>         return cls.pInstance
>>
>> # This will allways return None under Python 3.2
>> menuManagerInstance = MenuManager.instance()
>> print(menuManagerInstance)
>> <<<
>>
>> Under Python 2.6 and 2.7 the code work as expected (cls.pInstance is NOT
>> None)
>> If MenuManager inherits from object it will work (class
>> MenuManager(object)), so there is something wrong with QObject
>> wrapper...
>> Under PyQt4 it works fine.
>>
>> I have absolutely no idea what is going on here.
>>
>> Regards
>> Roman
>> _______________________________________________
>> PySide mailing list
>> PySide at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/pyside



More information about the PySide mailing list