[PyQt] Resizing index widgets

Mads Ipsen mads.ipsen at gmail.com
Tue Jan 29 21:31:14 GMT 2013


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 |
+----------------------+------------------------------+

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20130129/6ed62f94/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen0.png
Type: image/png
Size: 156089 bytes
Desc: not available
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20130129/6ed62f94/attachment-0003.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen1.png
Type: image/png
Size: 174706 bytes
Desc: not available
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20130129/6ed62f94/attachment-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen2.png
Type: image/png
Size: 161804 bytes
Desc: not available
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20130129/6ed62f94/attachment-0005.png>


More information about the PyQt mailing list