def _set_input_fields(self, input_parameter_filed, row, col): item = QtWidgets.QTableWidgetItem( str(input_parameter_filed.get_value())) if col == 0: item.setTextAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) else: item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter) flag = input_parameter_filed.get_editable_flag_value() if flag == ParameterEditability.NotEditable(): item.setFlags(QtCore.Qt.NoItemFlags) elif flag == ParameterEditability.Selectable(): item.setFlags(QtCore.Qt.ItemIsEnabled) else: item.setFlags(item.flags() | QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled) try: color = { ParameterState.Invalid(): RED, ParameterState.Changed(): RED, ParameterState.Removed(): RED, ParameterState.PartValid(): ORANGE, ParameterState.New(): GREEN }[input_parameter_filed.get_state()] _set_widget_color(item, color) except KeyError: pass self.table.setItem(row, col, item)
def __init__(self, name, parameter): self.name = ParameterField(name) self.lsl = ParameterField(parameter['LSL']) self.ltl = ParameterField(parameter['LTL'], editable=ParameterEditability.Editable()) self.utl = ParameterField(parameter['UTL'], editable=ParameterEditability.Editable()) self.usl = ParameterField(parameter['USL']) self.exponent = ParameterField(parameter['10рхА']) self.unit = ParameterField(parameter['Unit']) self.format = ParameterField(parameter['fmt']) self.bin_parameter = None self._update_binning_parameters(parameter) self.valid = True
def __init__( self, value, editable: ParameterEditability = ParameterEditability.NotEditable(), state: ParameterState = ParameterState.Valid()): self._value = value self._editable = editable self._state = state
def _select_editability_for_resolvertype(self, editable): if editable is not ParameterEditability.NotEditable(): if self.type == ResolverTypes.Static(): self.set_value_editability(ParameterEditability.Editable) elif self.type == ResolverTypes.Local(): self.set_value_editability(ParameterEditability.Selectable) else: self.set_value_editability(ParameterEditability.Editable)
def edit(self, value_index: int, complete_cb: Callable): if self.get_editable_flag_value( value_index) != ParameterEditability.Editable(): return validator = None if self._get_validator_type() != ValidatorTypes.NoValidation: from ATE.spyder.widgets.validation import valid_float_regex validator = QtGui.QRegExpValidator( QtCore.QRegExp(valid_float_regex), None) item = self.table.item(self.table_row, value_index) self.create_checkable_cell( item, validator, lambda txt, value: self.on_edit_done(txt, value, complete_cb))
def __init__(self, name, input_params): editable = ParameterEditability.Editable() if name == 'Temperature': editable = ParameterEditability.NotEditable() self.name = ParameterField(name) self.min = ParameterField(input_params['Min']) self.max = ParameterField(input_params['Max']) self.format = ParameterField(input_params['fmt']) self.unit = ParameterField(input_params['Unit']) self.exponent = ParameterField(input_params['10рхА']) self.type = self.InputParameterFieldType( ResolverTypes.Static() if input_params.get('type') is None else input_params['type'], editable=editable) self.default = ParameterField(self.format_value( input_params['Default']), editable=editable) self.value = copy.deepcopy(self.default) if input_params.get( 'value') is None else ParameterField(self._get_value(input_params)) self.valid = True self._select_editability_for_resolvertype(editable)
def get_editable_flag_value(self, value_index: int): # overridden by InputParameter! return ParameterEditability.Editable()
def is_editable(self): return self._editable == ParameterEditability.Editable()
def set_validity(self, validity: ParameterState): if validity == ParameterState.Removed(): self.set_editable(ParameterEditability.NotEditable()) self._state = validity
def __init__(self, value, editable): editable = ParameterEditability.Selectable( ) if editable == ParameterEditability.Editable() else editable super().__init__(value, editable)