Author: johannes Date: 2007-02-22 04:09:53 -0600 (Thu, 22 Feb 2007) New Revision: 9397
Modified: trunk/gnue-forms/src/uidrivers/qt3/UIdriver.py trunk/gnue-forms/src/uidrivers/qt3/widgets/box.py trunk/gnue-forms/src/uidrivers/qt3/widgets/button.py trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py trunk/gnue-forms/src/uidrivers/qt3/widgets/form.py trunk/gnue-forms/src/uidrivers/qt3/widgets/page.py Log: Use calculated (fixed) sizes for positioned layout Modified: trunk/gnue-forms/src/uidrivers/qt3/UIdriver.py =================================================================== --- trunk/gnue-forms/src/uidrivers/qt3/UIdriver.py 2007-02-22 08:10:02 UTC (rev 9396) +++ trunk/gnue-forms/src/uidrivers/qt3/UIdriver.py 2007-02-22 10:09:53 UTC (rev 9397) @@ -106,8 +106,10 @@ else: self.__splash = None + self.__cell_size() + # ------------------------------------------------------------------------- # Start the application's main loop # ------------------------------------------------------------------------- @@ -185,3 +187,31 @@ child.main_window.close() assert gLeave(6) + + + # ------------------------------------------------------------------------- + # Get the cell size for positioned layout + # ------------------------------------------------------------------------- + + def __cell_size(self): + + frame = qt.QMainWindow() + result = {} + + lb = qt.QLabel('Sample', frame) + tx = qt.QLineEdit(frame) + dr = qt.QComboBox(True, frame) + result['default'] = (tx.sizeHint().width(), tx.sizeHint().height()) + result['dropdown'] = (dr.sizeHint().width(), dr.sizeHint().height()) + result['label'] = (lb.sizeHint().width(), lb.sizeHint().height()) + + text = "".join([chr(i) for i in range(48, 127)]) + self.cell_width = frame.fontMetrics().width(text) / len(text) + 1 + self.cell_height = max([i[1] for i in result.values()]) + 2 + + bt = qt.QPushButton('Sample', frame) + mt = qt.QTextEdit(frame) + result['button'] = (bt.sizeHint().width(), bt.sizeHint().height()) + result['multiline'] = (mt.sizeHint().width(), mt.sizeHint().height()) + + self.best_sizes = result Modified: trunk/gnue-forms/src/uidrivers/qt3/widgets/box.py =================================================================== --- trunk/gnue-forms/src/uidrivers/qt3/widgets/box.py 2007-02-22 08:10:02 UTC (rev 9396) +++ trunk/gnue-forms/src/uidrivers/qt3/widgets/box.py 2007-02-22 10:09:53 UTC (rev 9397) @@ -50,6 +50,8 @@ self._container = qt.QGroupBox(self._gfObject.label, event.container) self._container.setInsideMargin(6) self.widget = self._container + self.widget.setFixedSize(self.chr_w * self._uiDriver.cell_width, + self.chr_h * self._uiDriver.cell_height) self.sizer = qt.QGridLayout(self.chr_h, self.chr_w, 2) self._container.layout().addLayout(self.sizer) @@ -75,7 +77,7 @@ self.sizer.addMultiCellWidget(item, ui_widget.chr_y, ui_widget.chr_y + ui_widget.chr_h - 1, ui_widget.chr_x, - ui_widget.chr_x + ui_widget.chr_w - 1) + ui_widget.chr_x + ui_widget.chr_w - 1, qt.Qt.AlignLeft) Modified: trunk/gnue-forms/src/uidrivers/qt3/widgets/button.py =================================================================== --- trunk/gnue-forms/src/uidrivers/qt3/widgets/button.py 2007-02-22 08:10:02 UTC (rev 9396) +++ trunk/gnue-forms/src/uidrivers/qt3/widgets/button.py 2007-02-22 10:09:53 UTC (rev 9397) @@ -52,6 +52,9 @@ parent = event.container self.widget = Button(parent, self) + if not self.managed: + self.widget.setFixedSize(self.chr_w * self._uiDriver.cell_width, + self.chr_h * self._uiDriver.cell_height) if self.in_grid: self.widget._gnue_label_ = None Modified: trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py =================================================================== --- trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py 2007-02-22 08:10:02 UTC (rev 9396) +++ trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py 2007-02-22 10:09:53 UTC (rev 9397) @@ -60,6 +60,9 @@ else: (self.label, self.widget) = self.__build_default(parent) + if not self.managed: + self.widget.set_default_size() + if self.in_grid: self.widget._gnue_label_ = self.label @@ -275,7 +278,21 @@ self.lookup = self self._keypress_ = False + # ------------------------------------------------------------------------- + # Set the default size for a widget + # ------------------------------------------------------------------------- + def set_default_size(self): + """ + Set the fixed size for this widget + """ + cellw = self.ui_widget._uiDriver.cell_width + cellh = self.ui_widget._uiDriver.cell_height + + self.setFixedSize(cellw * self.ui_widget.chr_w, cellh * + self.ui_widget.chr_h) + + # ------------------------------------------------------------------------- # User-Feedback methods # ------------------------------------------------------------------------- Modified: trunk/gnue-forms/src/uidrivers/qt3/widgets/form.py =================================================================== --- trunk/gnue-forms/src/uidrivers/qt3/widgets/form.py 2007-02-22 08:10:02 UTC (rev 9396) +++ trunk/gnue-forms/src/uidrivers/qt3/widgets/form.py 2007-02-22 10:09:53 UTC (rev 9397) @@ -123,12 +123,6 @@ else: self._container = self.main_widget - fmet = self.main_window.fontMetrics() - - self._uiDriver.cell_height = fmet.height() - text = "".join([chr(i) for i in range(48, 127)]) - self._uiDriver.cell_width = fmet.width(text) / len(text) + 1 - return self.main_window Modified: trunk/gnue-forms/src/uidrivers/qt3/widgets/page.py =================================================================== --- trunk/gnue-forms/src/uidrivers/qt3/widgets/page.py 2007-02-22 08:10:02 UTC (rev 9396) +++ trunk/gnue-forms/src/uidrivers/qt3/widgets/page.py 2007-02-22 10:09:53 UTC (rev 9397) @@ -95,7 +95,7 @@ else: sizer.addMultiCellWidget(item, ui_widget.chr_y, ui_widget.chr_y + ui_widget.chr_h - 1, ui_widget.chr_x, ui_widget.chr_x + - ui_widget.chr_w - 1) + ui_widget.chr_w - 1, qt.Qt.AlignLeft) # ============================================================================= # Configuration _______________________________________________ commit-gnue mailing list commit-gnue@gnu.org http://lists.gnu.org/mailman/listinfo/commit-gnue