Вот в чем вопрос, у меня имеется класс вида
class infoLay(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, None)
self.ean_edit = QtGui.QLineEdit()
self.ean_edit.setDisabled(1)
self.ean_edit.setMinimumWidth(70)
self.ean_edit.setMaximumWidth(100)
#Бла Бла бла еще много строчек кода
Он прекрасно работает и делает сваю qt хрень. Но так уж получилось что мне нужно теперь его сделать метаклассом, и вот тут я полный профан:
class infoLayMeta(type):
def __init__(cls, name, bases, dict):
super(infoLayMeta, cls).__init__(name, bases, dict)
cls.instance = None
self.ean_edit = QtGui.QLineEdit()
self.ean_edit.setDisabled(1)
self.ean_edit.setMinimumWidth(70)
self.ean_edit.setMaximumWidth(100)
#Бла бла бла
def __call__(self,*args,**kw):
if self.instance is None:
self.instance = super(SingletonMeta, self).__call__(*args, **kw)
return self.instance
class infoLay(object):
__metaclass__ = infoLayMeta
Суть перевода в метакласс - создание синглтона. Но вот вопрос - как и где мне наследовать QtGui.QWidget и где вызывать его конструктор? Куда не приткну - конфликт базы метакласса…