[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: [PyQt] staticMetaObject
From: Kermit <stef.kermit () gmail ! com>
Date: 2012-03-29 11:44:06
Message-ID: CA+4Qr9bj0Et_Sj9=Wqv0GX2131H7X3kacWidLRh41DYEOce3tg () mail ! gmail ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Hi PyQt community,
i can't understand why staticMetaObject isn't know in __new__ construction
first step, i think is because staticMetaObject is create for instance,
but in this code bellow, staticMetaObject is know before real instanciation
no way for work with in __new__ function ?
Thx for your help
Kermit
"""
from PyQt4 import QtCore
class MetaKlass(QtCore.pyqtWrapperType):
def __new__(meta_cls, name, bases, cls_dict):
cls = QtCore.pyqtWrapperType.__new__(meta_cls, name, bases,
cls_dict)
try:
meta = cls.staticMetaObject
print "__new__", meta
except:
print "error for __new__"
return cls
def __call__(cls, *args, **kwargs):
try:
meta = cls.staticMetaObject
print "__call__", meta
except:
print "error for __call__"
instance = cls.__new__(cls)
return instance
class Klass(QtCore.QObject):
__metaclass__ = MetaKlass
klass = Klass()
print klass
[Attachment #5 (text/html)]
Hi PyQt community,<div><br></div><div>i can't understand why staticMetaObject \
isn't know in __new__ construction</div><div><br></div><div>first step, i think \
is because staticMetaObject is create for instance,</div> <div>but in this code \
bellow, staticMetaObject is know before real \
instanciation</div><div><br></div><div>no way for work with in __new__ function \
?</div><div><br></div><div>Thx for your help</div><div>Kermit</div><div><br> \
</div><div>"""</div><div><div>from PyQt4 import \
QtCore</div><div><br></div><div>class MetaKlass(QtCore.pyqtWrapperType):</div><div> \
def __new__(meta_cls, name, bases, cls_dict):</div><div> cls = \
QtCore.pyqtWrapperType.__new__(meta_cls, name, bases, cls_dict)</div> <div> \
try:</div><div> meta = cls.staticMetaObject</div><div> print \
"__new__", meta</div><div> except:</div><div> print \
"error for __new__"</div><div> return cls</div> <div> </div><div> \
def __call__(cls, *args, **kwargs):</div><div> try:</div><div> meta \
= cls.staticMetaObject</div><div> print "__call__", \
meta</div><div> except:</div><div> print "error for \
__call__"</div><div> </div><div> instance = \
cls.__new__(cls)</div><div> return instance</div><div> </div><div> \
</div><div>class Klass(QtCore.QObject):</div> <div> __metaclass__ = \
MetaKlass</div><div> </div><div> </div><div><br></div><div>klass = \
Klass()</div><div>print klass</div></div><div><br></div>
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic