I think you can do something like this:
>>> import PyQt4.QtGui as gui
>>> def factory(name):
... def spam(): pass
... def yam(): pass
... return type(name, (gui.QWidget,),{'spam':spam, 'yam': yam})
...
>>> MyClass = factory('MyClass')
>>> MyClass.__mro__
(<class '__main__.MyClass'>, <class 'PyQt4.QtGui.QWidget'>, <class
'PyQt4.QtCore.QObject'>, <type 'sip.wrapper'>, <class
'PyQt4.QtGui.QPaintDevice'>, <type 'sip.simplewrapper'>, <type 'object'>)
On 08/09/11 23:33, Daniel Goertzen wrote:
Does pyqt provide a way to override the class name when deriving a
QObject based class?
An example of why this is wanted:
def my_widget_class_factory(...):
class temp(QWidget):
...(dynamically generate class attributes and methods)
return temp
All classes generated by the above function will come back with
className() as "temp". This causes headaches for Designer.
I know I can add a metaclass to mangle the class name, but I was
wondering there was an easier way (ie, does QObject's metaclass
provided a way to rename the class?)
Thanks,
Dan.
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt