class _NoScan(LayoutWidget): def __init__(self, procdesc, state): LayoutWidget.__init__(self) scale = procdesc["scale"] self.value = ScientificSpinBox() disable_scroll_wheel(self.value) self.value.setDecimals(procdesc["ndecimals"]) self.value.setPrecision() if procdesc["global_min"] is not None: self.value.setMinimum(procdesc["global_min"] / scale) else: self.value.setMinimum(float("-inf")) if procdesc["global_max"] is not None: self.value.setMaximum(procdesc["global_max"] / scale) else: self.value.setMaximum(float("inf")) self.value.setSingleStep(procdesc["global_step"] / scale) self.value.setRelativeStep() if procdesc["unit"]: self.value.setSuffix(" " + procdesc["unit"]) self.addWidget(QtWidgets.QLabel("Value:"), 0, 0) self.addWidget(self.value, 0, 1) self.value.setValue(state["value"] / scale) def update(value): state["value"] = value * scale self.value.valueChanged.connect(update) self.repetitions = QtWidgets.QSpinBox() self.repetitions.setMinimum(1) self.repetitions.setMaximum((1 << 31) - 1) disable_scroll_wheel(self.repetitions) self.addWidget(QtWidgets.QLabel("Repetitions:"), 1, 0) self.addWidget(self.repetitions, 1, 1) self.repetitions.setValue(state["repetitions"]) def update_repetitions(value): state["repetitions"] = value self.repetitions.valueChanged.connect(update_repetitions)
class _NoScan(LayoutWidget): def __init__(self, procdesc, state): LayoutWidget.__init__(self) scale = procdesc["scale"] self.value = ScientificSpinBox() disable_scroll_wheel(self.value) self.value.setDecimals(procdesc["ndecimals"]) self.value.setPrecision() if procdesc["global_min"] is not None: self.value.setMinimum(procdesc["global_min"] / scale) else: self.value.setMinimum(float("-inf")) if procdesc["global_max"] is not None: self.value.setMaximum(procdesc["global_max"] / scale) else: self.value.setMaximum(float("inf")) self.value.setSingleStep(procdesc["global_step"] / scale) self.value.setRelativeStep() if procdesc["unit"]: self.value.setSuffix(" " + procdesc["unit"]) self.addWidget(QtWidgets.QLabel("Value:"), 0, 0) self.addWidget(self.value, 0, 1) self.value.setValue(state["value"] / scale) def update(value): state["value"] = value * scale self.value.valueChanged.connect(update) self.repetitions = QtWidgets.QSpinBox() self.repetitions.setMinimum(1) self.repetitions.setMaximum((1 << 31) - 1) disable_scroll_wheel(self.repetitions) self.addWidget(QtWidgets.QLabel("Repetitions:"), 1, 0) self.addWidget(self.repetitions, 1, 1) self.repetitions.setValue(state["repetitions"]) def update_repetitions(value): state["repetitions"] = value self.repetitions.valueChanged.connect(update_repetitions)
def _make_spin_box(self): box = ScientificSpinBox() disable_scroll_wheel(box) box.valueChanged.connect(self.value_changed) spec = self.schema.get("spec", {}) step = spec.get("step", 1.0) box.setDecimals(8) box.setPrecision() box.setSingleStep(step / self.scale) box.setRelativeStep() box.setMinimum(spec.get("min", float("-inf")) / self.scale) box.setMaximum(spec.get("max", float("inf")) / self.scale) unit = spec.get("unit", "") if unit: box.setSuffix(" " + unit) return box
def __init__(self, procdesc, state): LayoutWidget.__init__(self) scale = procdesc["scale"] def apply_properties(widget): widget.setDecimals(procdesc["ndecimals"]) if procdesc["global_min"] is not None: widget.setMinimum(procdesc["global_min"]/scale) else: widget.setMinimum(float("-inf")) if procdesc["global_max"] is not None: widget.setMaximum(procdesc["global_max"]/scale) else: widget.setMaximum(float("inf")) if procdesc["global_step"] is not None: widget.setSingleStep(procdesc["global_step"]/scale) if procdesc["unit"]: widget.setSuffix(" " + procdesc["unit"]) center = ScientificSpinBox() disable_scroll_wheel(center) apply_properties(center) center.setPrecision() center.setRelativeStep() center.setValue(state["center"]/scale) self.addWidget(center, 0, 1) self.addWidget(QtWidgets.QLabel("Center:"), 0, 0) span = ScientificSpinBox() disable_scroll_wheel(span) apply_properties(span) span.setPrecision() span.setRelativeStep() span.setMinimum(0) span.setValue(state["span"]/scale) self.addWidget(span, 1, 1) self.addWidget(QtWidgets.QLabel("Span:"), 1, 0) step = ScientificSpinBox() disable_scroll_wheel(step) apply_properties(step) step.setPrecision() step.setRelativeStep() step.setMinimum(0) step.setValue(state["step"]/scale) self.addWidget(step, 2, 1) self.addWidget(QtWidgets.QLabel("Step:"), 2, 0) randomize = QtWidgets.QCheckBox("Randomize") self.addWidget(randomize, 3, 1) randomize.setChecked(state["randomize"]) def update_center(value): state["center"] = value*scale def update_span(value): state["span"] = value*scale def update_step(value): state["step"] = value*scale def update_randomize(value): state["randomize"] = value center.valueChanged.connect(update_center) span.valueChanged.connect(update_span) step.valueChanged.connect(update_step) randomize.stateChanged.connect(update_randomize)
def __init__(self, procdesc, state): LayoutWidget.__init__(self) scale = procdesc["scale"] def apply_properties(widget): widget.setDecimals(procdesc["ndecimals"]) if procdesc["global_min"] is not None: widget.setMinimum(procdesc["global_min"]/scale) else: widget.setMinimum(float("-inf")) if procdesc["global_max"] is not None: widget.setMaximum(procdesc["global_max"]/scale) else: widget.setMaximum(float("inf")) if procdesc["global_step"] is not None: widget.setSingleStep(procdesc["global_step"]/scale) if procdesc["unit"]: widget.setSuffix(" " + procdesc["unit"]) center = ScientificSpinBox() disable_scroll_wheel(center) apply_properties(center) center.setPrecision() center.setRelativeStep() center.setValue(state["center"]) self.addWidget(center, 0, 1) self.addWidget(QtWidgets.QLabel("Center:"), 0, 0) span = ScientificSpinBox() disable_scroll_wheel(span) apply_properties(span) span.setPrecision() span.setRelativeStep() span.setMinimum(0) span.setValue(state["span"]) self.addWidget(span, 1, 1) self.addWidget(QtWidgets.QLabel("Span:"), 1, 0) step = ScientificSpinBox() disable_scroll_wheel(step) apply_properties(step) step.setPrecision() step.setRelativeStep() step.setMinimum(0) step.setValue(state["step"]) self.addWidget(step, 2, 1) self.addWidget(QtWidgets.QLabel("Step:"), 2, 0) randomize = QtWidgets.QCheckBox("Randomize") self.addWidget(randomize, 3, 1) randomize.setChecked(state["randomize"]) def update_center(value): state["center"] = value*scale def update_span(value): state["span"] = value*scale def update_step(value): state["step"] = value*scale def update_randomize(value): state["randomize"] = value center.valueChanged.connect(update_center) span.valueChanged.connect(update_span) step.valueChanged.connect(update_step) randomize.stateChanged.connect(update_randomize)