[PyQt] Custom widget property
Vincent Vande Vyvre
vincent.vandevyvre at swing.be
Tue Aug 21 09:39:37 BST 2012
On 17/08/12 14:10, Vincent Vande Vyvre wrote:
> Hi,
>
> I'm working on a custom widget, I've created a file plugin and I can use
> my widget into the Designer.
>
> So, this widget has a property 'orientation' wich may take two values:
> 'east' or 'west'.
>
> Into the properties editor this property appears with a lineEdit, how
> can make
> to change this lineEdit to a comboBox with the two values?
>
> This is the code for this property:
>
> def getOrientation(self):
> return self.orientation_
>
> def setOrientation(self, orientation):
> """Sets the orientation of the widgets.
>
> Args:
> orientation -- str() 'east', the widgets are placed from left to
> right (default) or 'west'
> """
>
> if orientation not in ('east', 'west'):
> raise ValueError('VToolHeader.setOrientation(orientation)
> arg 1 has'
> ' unexpected value {0}'.format(orientation))
>
> if orientation != self.orientation_:
> self.orientation_ = orientation
> self.__set_direction()
>
> if self.collapsible_:
> self.collapse_btn.update_icon()
>
> orientation = pyqtProperty('QString', getOrientation, setOrientation)
>
>
> Thanks for all advices
>
Well, it's seems not possible [1].
So, I've changed my own QString property to a LayoutDirection.
orientation = pyqtProperty(Qt.LayoutDirection, getOrientation,
setOrientation)
Now it's OK.
[1] http://mail.python.org/pipermail/python-list/2010-February/567037.html
--
Vincent V.V.
Oqapy <https://launchpad.net/oqapy> . Qarte
<https://launchpad.net/qarte> . PaQager <https://launchpad.net/paqager>
More information about the PyQt
mailing list