def __init__(self, axis, source_axis=None, parent=None): super(AxisBoundsChooser, self).__init__(parent=parent) if source_axis is not None: self.axis = source_axis else: self.axis = axis l = QtGui.QVBoxLayout() l.addWidget(header_label(axis.id)) if source_axis is not None: minimum, maximum = (float(num) for num in genutil.minmax(source_axis)) bottom, top = (float(num) for num in genutil.minmax(axis)) for i, v in enumerate(source_axis): if v == bottom: bot_ind = i if v == top: top_ind = i self.range = RangeWidget(axis_values(source_axis), bottom=bot_ind, top=top_ind) else: minimum, maximum = (float(num) for num in genutil.minmax(axis)) self.range = RangeWidget(axis_values(axis)) l.addWidget(self.range) self.setLayout(l) emitter = partial(self.boundsEdited.emit, self.axis) self.range.boundsEdited.connect(emitter)