Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 6, 2012 19:02:33

Serbis
От:
Зарегистрирован: 2012-02-13
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Наследование метоклассом

Вот в чем вопрос, у меня имеется класс вида

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 и где вызывать его конструктор? Куда не приткну - конфликт базы метакласса…



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version