def __init__(self, existing_names): super(MakeNewCustomLinearFilterDialog, self).__init__() self.ui = Ui_Dialog() self.existing_names = existing_names self.ui.setupUi(self, self._get_new_filter_name()) self._init_triggers() self.update_existing_names = []
class MakeNewCustomLinearFilterDialog(QtGui.QDialog): def __init__(self, existing_names): super(MakeNewCustomLinearFilterDialog, self).__init__() self.ui = Ui_Dialog() self.existing_names = existing_names self.ui.setupUi(self, self._get_new_filter_name()) self._init_triggers() self.update_existing_names = [] def _get_new_filter_name(self): name = "New Filter" while name in self.existing_names: try: parts = name.split('_') n = int(parts[-1]) + 1 except: n = 1 name += '_%d' % n return name def _init_triggers(self): self.ui.buttonBox.accepted.connect(self.accept) self.ui.buttonBox.rejected.connect(self.reject) self.ui.dimensionSpinner.valueChanged.connect(lambda: self.ui.change_matrix_layout(self)) def get_values(self): dimension = len(self.ui.matrix_widget.elems) elem_values = [] for column_elems in self.ui.matrix_widget.elems: for elem in column_elems: elem_values.append(int(elem.text())) matrix = np.array(elem_values).reshape(dimension, dimension).transpose() divisor = int(self.ui.divisorSpinner.value()) name = self.ui.nameEdit.text() self.existing_names.append(name) return matrix, divisor, name