yes, I know, I read that in the docs, but, how to do something similar to what I want to achieve?
On Fri, Jul 8, 2011 at 12:20 PM, Lic. José M. Rodriguez Bacallao <[email protected]> wrote: > I tried that before and still getting the same error. I thinks is > something like the C++ part of the widget is not created at the time > when the properties methods are called to set my initial values as > this happen before __init__ is called. > > On Fri, Jul 8, 2011 at 12:05 PM, Demetrius Cassidy <[email protected]> > wrote: >> You need to call QToolButton's __init__() method. >> >> class Indicator(QtGui.QToolButton, Model): >> def __init__(self) >> super(Indicator, self).__init__() >> On Fri, Jul 8, 2011 at 1:49 PM, Lic. José M. Rodriguez Bacallao >> <[email protected]> wrote: >>> >>> hi folks, I am creating a composite widget with PyQt4 and Dip, the >>> problem I have is that when I use dip properties for setting PyQt4 >>> properties in the constructor I am getting an error saying that the >>> underlying C++ object has been delete, I think this is due to the way >>> dip works because it call properties methods before the actual Qt4 >>> widget as been created when I pass an initial value in the >>> constructor. When I construct the object with properties initial >>> values and the use the properties accesors to set the value, this >>> doens't happen. So, my question is, which is the right way to >>> construct a custom composite widget with dip? >>> >>> # dip imports >>> from dip.model import Model, Instance, Str >>> >>> # PyQt4 imports >>> from PyQt4 import QtCore, QtGui >>> >>> class Indicator(QtGui.QToolButton, Model): >>> >>> # the indicator identifier, it must be unique for all indicators >>> id = Str() >>> >>> # the indicator text, this text will be shown >>> # beside the icon if one is defined >>> text = Str() >>> >>> # the indicator tooltip >>> tooltip = Str() >>> >>> # the indicator icon >>> icon = Instance(QtGui.QIcon) >>> >>> @id.getter >>> def id(self): >>> print 'getting value' >>> return self.objectName() >>> >>> @id.setter >>> def id(self, id): >>> print 'setting value' >>> self.setObjectName(id) >>> >>> @text.getter >>> def text(self): >>> return self.text() >>> >>> @text.setter >>> def text(self, text): >>> self.setText(text) >>> >>> @tooltip.getter >>> def tooltip(self): >>> return self.toolTip() >>> >>> @tooltip.setter >>> def tooltip(self, tooltip): >>> self.setToolTip(tooltip) >>> >>> @icon.getter >>> def icon(self): >>> return self.icon() >>> >>> @icon.setter >>> def icon(self, icon): >>> self.icon = icon >>> >>> def perform(self): >>> raise NotImplementedError >>> >>> if __name__ == '__main__': >>> app = QtGui.QApplication([]) >>> >>> i = Indicator(text='xxx') >>> i.show() >>> >>> app.exec_() >>> >>> -- >>> Lic. José M. Rodriguez Bacallao >>> Centro de Biofisica Medica >>> ----------------------------------------------------------------- >>> Todos somos muy ignorantes, lo que ocurre es que no todos ignoramos lo >>> mismo. >>> >>> Recuerda: El arca de Noe fue construida por aficionados, el titanic >>> por profesionales >>> ----------------------------------------------------------------- >>> _______________________________________________ >>> PyQt mailing list [email protected] >>> http://www.riverbankcomputing.com/mailman/listinfo/pyqt >> > > > > -- > Lic. José M. Rodriguez Bacallao > Centro de Biofisica Medica > ----------------------------------------------------------------- > Todos somos muy ignorantes, lo que ocurre es que no todos ignoramos lo mismo. > > Recuerda: El arca de Noe fue construida por aficionados, el titanic > por profesionales > ----------------------------------------------------------------- > -- Lic. José M. Rodriguez Bacallao Centro de Biofisica Medica ----------------------------------------------------------------- Todos somos muy ignorantes, lo que ocurre es que no todos ignoramos lo mismo. Recuerda: El arca de Noe fue construida por aficionados, el titanic por profesionales ----------------------------------------------------------------- _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
