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 )
Exemplo n.º 2
0
    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)