[PyQt] help with dip and PyQt4 widgets
Lic. José M. Rodriguez Bacallao
jmrbcu at gmail.com
Fri Jul 8 18:04:33 BST 2011
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
<jmrbcu at gmail.com> 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 <dcassidy36 at gmail.com> 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
>> <jmrbcu at gmail.com> 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 PyQt at riverbankcomputing.com
>>> 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
-----------------------------------------------------------------
More information about the PyQt
mailing list