[PyQt] Resizing index widgets
Detlev Offenbach
detlev at die-offenbachs.de
Wed Jan 30 18:11:28 GMT 2013
Hi Mads,
why are you using QTreeView? I would use QToolbox for such a layout.
Regards,
Detlev
On Tuesday 29 January 2013, 22:31:14 Mads Ipsen wrote:
Hi,
We develop a tool for manipulating atomic structures and have embedded all the
manipulation widgets in a panel bar (widget on the right in attached
screen0.png). The Panel bar has expandable buttons, which upon expansion
display different interfaces for manipulating the atomic structures.
The whole thing is implemented using a MVC approach using a QTreeView and an
overloaded QItemDelegate class used for handling painting of the buttons,
sizeHints, etc. The widget interfaces however, are displayed by setting
setIndexWidget() on the tree view.
This works fine if the widgets have a fixed size. However if the atomic
structure changes (molecule to crystal), previously hidden GUI elements may be
shown in the widget, which gives rise to a compressed (bad) layout since the
index widget has a fixed size (screen1.png).
The only way I could fix this was to use an idle time, that keeps triggering
the emission of the signal
sizeHintChanged(const QModelIndex & index)
from the delegate. This immediately triggers a smooth update of the index
widget resulting in screen2.png. From a user perspective it works fine, but to
me it appears somewhat hacky. Is there eg. a way to monitor layout changes in
visible index widgets?
Best regards,
Mads
--
+-----------------------------------------------------+
| Mads Ipsen |
+----------------------+------------------------------+
| Gåsebæksvej 7, 4. tv | |
| DK-2500 Valby | phone: +45-29716388 |
| Denmark | email: mads.ipsen at gmail.com |
+----------------------+------------------------------+
--
Detlev Offenbach
detlev at die-offenbachs.de
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20130130/ce78a34e/attachment.html>
More information about the PyQt
mailing list