def _refresh_widgets_from_axistags(self): axiskeys = [tag.key for tag in self.axistags] row_widgets = collections.OrderedDict() for key in axiskeys: tag_info = self.axistags[key] resolution_box = QDoubleSpinBox(parent=self) resolution_box.setRange(0.0, numpy.finfo(numpy.float32).max) resolution_box.setValue( tag_info.resolution ) resolution_box.valueChanged.connect( self._update_axistags_from_widgets ) resolution_box.installEventFilter(self) description_edit = QLineEdit(tag_info.description, parent=self) description_edit.textChanged.connect( self._update_axistags_from_widgets ) description_edit.installEventFilter(self) row_widgets[key] = RowWidgets( resolution_box, description_edit ) # Clean up old widgets (if any) for row in range(self.rowCount()): for col in range(self.columnCount()): w = self.cellWidget( row, col ) if w: w.removeEventFilter(self) # Fill table with widgets self.setRowCount( len(row_widgets) ) self.setVerticalHeaderLabels( row_widgets.keys() ) for row, widgets in enumerate(row_widgets.values()): self.setCellWidget( row, 0, widgets.resolution_box ) self.setCellWidget( row, 1, widgets.description_edit )
def _refresh_widgets_from_axistags(self): axiskeys = [tag.key for tag in self.axistags] row_widgets = collections.OrderedDict() for key in axiskeys: tag_info = self.axistags[key] resolution_box = QDoubleSpinBox(parent=self) resolution_box.setRange(0.0, numpy.finfo(numpy.float32).max) resolution_box.setValue(tag_info.resolution) resolution_box.valueChanged.connect( self._update_axistags_from_widgets) resolution_box.installEventFilter(self) description_edit = QLineEdit(tag_info.description, parent=self) description_edit.textChanged.connect( self._update_axistags_from_widgets) description_edit.installEventFilter(self) row_widgets[key] = RowWidgets(resolution_box, description_edit) # Clean up old widgets (if any) for row in range(self.rowCount()): for col in range(self.columnCount()): w = self.cellWidget(row, col) if w: w.removeEventFilter(self) # Fill table with widgets self.setRowCount(len(row_widgets)) self.setVerticalHeaderLabels(row_widgets.keys()) for row, widgets in enumerate(row_widgets.values()): self.setCellWidget(row, 0, widgets.resolution_box) self.setCellWidget(row, 1, widgets.description_edit)