From: <cpa...@ce...> - 2016-01-20 10:33:42
|
From: cpascual <cpa...@ce...> When using a TaurusValue customized with an extra widget, the grid layout behaves in an unexpected way regarding to its rows/columns stretch (see http://sf.net/p/tauruslib/tickets/142/#f4e4/9e68). Prevent this by inserting a spacer in the extrawidget column if no extrawidget is used. --- lib/taurus/qt/qtgui/panel/taurusvalue.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/taurus/qt/qtgui/panel/taurusvalue.py b/lib/taurus/qt/qtgui/panel/taurusvalue.py index 543ba0e..dff58d2 100644 --- a/lib/taurus/qt/qtgui/panel/taurusvalue.py +++ b/lib/taurus/qt/qtgui/panel/taurusvalue.py @@ -833,11 +833,17 @@ class TaurusValue(Qt.QWidget, TaurusBaseWidget): 1, 1, -1, alignment) def addExtraWidgetToLayout(self): - if self._extraWidget is not None and self.parent() is not None: - alignment = getattr(self._extraWidget, 'layoutAlignment', - Qt.Qt.AlignmentFlag(0)) - self.parent().layout().addWidget(self._extraWidget, self._row, - 5, 1, 1, alignment) + parent = self.parent() + if parent is not None: + if self._extraWidget is None: + # Adding this spacer is some voodoo magic to avoid bug #142 + # See: http://sf.net/p/tauruslib/tickets/142/ + parent.layout().addItem(Qt.QSpacerItem(0, 0), self._row, 5) + else: + alignment = getattr(self._extraWidget, 'layoutAlignment', + Qt.Qt.AlignmentFlag(0)) + parent.layout().addWidget(self._extraWidget, self._row, + 5, 1, 1, alignment) @Qt.pyqtSignature("parentModelChanged(const QString &)") def parentModelChanged(self, parentmodel_name): -- 2.6.4 |