def __init__(self, global_min, global_max, global_step, unit, scale, ndecimals): LayoutWidget.__init__(self) self.scale = scale def apply_properties(spinbox): spinbox.setDecimals(ndecimals) if global_min is not None: spinbox.setMinimum(global_min / self.scale) else: spinbox.setMinimum(float("-inf")) if global_max is not None: spinbox.setMaximum(global_max / self.scale) else: spinbox.setMaximum(float("inf")) if global_step is not None: spinbox.setSingleStep(global_step / self.scale) if unit: spinbox.setSuffix(" " + unit) self.addWidget(QtGui.QLabel("Min:"), 0, 0) self.min = QtGui.QDoubleSpinBox() apply_properties(self.min) self.addWidget(self.min, 0, 1) self.addWidget(QtGui.QLabel("Max:"), 1, 0) self.max = QtGui.QDoubleSpinBox() apply_properties(self.max) self.addWidget(self.max, 1, 1) self.addWidget(QtGui.QLabel("#Points:"), 2, 0) self.npoints = QtGui.QSpinBox() self.npoints.setMinimum(2) self.npoints.setValue(10) self.addWidget(self.npoints, 2, 1)
def __init__(self, procdesc, state): LayoutWidget.__init__(self) scale = procdesc["scale"] self.value = QtGui.QDoubleSpinBox() disable_scroll_wheel(self.value) self.value.setDecimals(procdesc["ndecimals"]) 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) if procdesc["unit"]: self.value.setSuffix(" " + procdesc["unit"]) self.addWidget(QtGui.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)
def __init__(self, global_min, global_max, global_step, unit, ndecimals): LayoutWidget.__init__(self) def apply_properties(spinbox): spinbox.setDecimals(ndecimals) if global_min is not None: spinbox.setMinimum(global_min) else: spinbox.setMinimum(float("-inf")) if global_max is not None: spinbox.setMaximum(global_max) else: spinbox.setMaximum(float("inf")) if global_step is not None: spinbox.setSingleStep(global_step) if unit: spinbox.setSuffix(" " + unit) self.addWidget(QtGui.QLabel("Min:"), 0, 0) self.min = QtGui.QDoubleSpinBox() apply_properties(self.min) self.addWidget(self.min, 0, 1) self.addWidget(QtGui.QLabel("Max:"), 0, 2) self.max = QtGui.QDoubleSpinBox() apply_properties(self.max) self.addWidget(self.max, 0, 3) self.addWidget(QtGui.QLabel("#Points:"), 0, 4) self.npoints = QtGui.QSpinBox() self.npoints.setMinimum(2) self.npoints.setValue(10) self.addWidget(self.npoints, 0, 5)
def __init__(self, argument): LayoutWidget.__init__(self) self.argument = argument self.stack = QtGui.QStackedWidget() self.addWidget(self.stack, 1, 0, colspan=4) procdesc = argument["desc"] state = argument["state"] self.widgets = OrderedDict() self.widgets["NoScan"] = _NoScan(procdesc, state["NoScan"]) self.widgets["LinearScan"] = _Range(procdesc, state["LinearScan"]) self.widgets["RandomScan"] = _Range(procdesc, state["RandomScan"]) self.widgets["ExplicitScan"] = _Explicit(state["ExplicitScan"]) for widget in self.widgets.values(): self.stack.addWidget(widget) self.radiobuttons = OrderedDict() self.radiobuttons["NoScan"] = QtGui.QRadioButton("No scan") self.radiobuttons["LinearScan"] = QtGui.QRadioButton("Linear") self.radiobuttons["RandomScan"] = QtGui.QRadioButton("Random") self.radiobuttons["ExplicitScan"] = QtGui.QRadioButton("Explicit") scan_type = QtGui.QButtonGroup() for n, b in enumerate(self.radiobuttons.values()): self.addWidget(b, 0, n) scan_type.addButton(b) b.toggled.connect(self._scan_type_toggled) selected = argument["state"]["selected"] self.radiobuttons[selected].setChecked(True)
def __init__(self, procdesc): LayoutWidget.__init__(self) self.stack = QtGui.QStackedWidget() self.addWidget(self.stack, 1, 0, colspan=4) self.scale = procdesc["scale"] gmin, gmax = procdesc["global_min"], procdesc["global_max"] gstep = procdesc["global_step"] unit = procdesc["unit"] ndecimals = procdesc["ndecimals"] self.v_noscan = QtGui.QDoubleSpinBox() self.v_noscan.setDecimals(ndecimals) if gmin is not None: self.v_noscan.setMinimum(gmin/self.scale) else: self.v_noscan.setMinimum(float("-inf")) if gmax is not None: self.v_noscan.setMaximum(gmax/self.scale) else: self.v_noscan.setMaximum(float("inf")) self.v_noscan.setSingleStep(gstep/self.scale) if unit: self.v_noscan.setSuffix(" " + unit) self.v_noscan_gr = LayoutWidget() self.v_noscan_gr.addWidget(QtGui.QLabel("Value:"), 0, 0) self.v_noscan_gr.addWidget(self.v_noscan, 0, 1) self.stack.addWidget(self.v_noscan_gr) self.v_linear = _Range(gmin, gmax, gstep, unit, self.scale, ndecimals) self.stack.addWidget(self.v_linear) self.v_random = _Range(gmin, gmax, gstep, unit, self.scale, ndecimals) self.stack.addWidget(self.v_random) self.v_explicit = QtGui.QLineEdit() self.v_explicit_gr = LayoutWidget() self.v_explicit_gr.addWidget(QtGui.QLabel("Sequence:"), 0, 0) self.v_explicit_gr.addWidget(self.v_explicit, 0, 1) self.stack.addWidget(self.v_explicit_gr) self.noscan = QtGui.QRadioButton("No scan") self.linear = QtGui.QRadioButton("Linear") self.random = QtGui.QRadioButton("Random") self.explicit = QtGui.QRadioButton("Explicit") radiobuttons = QtGui.QButtonGroup() for n, b in enumerate([self.noscan, self.linear, self.random, self.explicit]): self.addWidget(b, 0, n) radiobuttons.addButton(b) b.toggled.connect(self.select_page) if "default" in procdesc: self.set_argument_value(procdesc["default"]) else: self.noscan.setChecked(True)
def __init__(self, procdesc): LayoutWidget.__init__(self) self.stack = QtGui.QStackedWidget() self.addWidget(self.stack, 1, 0, colspan=4) self.scale = procdesc["scale"] gmin, gmax = procdesc["global_min"], procdesc["global_max"] gstep = procdesc["global_step"] unit = procdesc["unit"] ndecimals = procdesc["ndecimals"] self.v_noscan = QtGui.QDoubleSpinBox() self.v_noscan.setDecimals(ndecimals) if gmin is not None: self.v_noscan.setMinimum(gmin / self.scale) else: self.v_noscan.setMinimum(float("-inf")) if gmax is not None: self.v_noscan.setMaximum(gmax / self.scale) else: self.v_noscan.setMaximum(float("inf")) self.v_noscan.setSingleStep(gstep / self.scale) if unit: self.v_noscan.setSuffix(" " + unit) self.v_noscan_gr = LayoutWidget() self.v_noscan_gr.addWidget(QtGui.QLabel("Value:"), 0, 0) self.v_noscan_gr.addWidget(self.v_noscan, 0, 1) self.stack.addWidget(self.v_noscan_gr) self.v_linear = _Range(gmin, gmax, gstep, unit, self.scale, ndecimals) self.stack.addWidget(self.v_linear) self.v_random = _Range(gmin, gmax, gstep, unit, self.scale, ndecimals) self.stack.addWidget(self.v_random) self.v_explicit = QtGui.QLineEdit() self.v_explicit_gr = LayoutWidget() self.v_explicit_gr.addWidget(QtGui.QLabel("Sequence:"), 0, 0) self.v_explicit_gr.addWidget(self.v_explicit, 0, 1) self.stack.addWidget(self.v_explicit_gr) self.noscan = QtGui.QRadioButton("No scan") self.linear = QtGui.QRadioButton("Linear") self.random = QtGui.QRadioButton("Random") self.explicit = QtGui.QRadioButton("Explicit") radiobuttons = QtGui.QButtonGroup() for n, b in enumerate( [self.noscan, self.linear, self.random, self.explicit]): self.addWidget(b, 0, n) radiobuttons.addButton(b) b.toggled.connect(self.select_page) if "default" in procdesc: self.set_argument_value(procdesc["default"]) else: self.noscan.setChecked(True)
def __init__(self, procdesc, state): LayoutWidget.__init__(self) scale = procdesc["scale"] def apply_properties(spinbox): spinbox.setDecimals(procdesc["ndecimals"]) if procdesc["global_min"] is not None: spinbox.setMinimum(procdesc["global_min"]/scale) else: spinbox.setMinimum(float("-inf")) if procdesc["global_max"] is not None: spinbox.setMaximum(procdesc["global_max"]/scale) else: spinbox.setMaximum(float("inf")) if procdesc["global_step"] is not None: spinbox.setSingleStep(procdesc["global_step"]/scale) if procdesc["unit"]: spinbox.setSuffix(" " + procdesc["unit"]) self.addWidget(QtGui.QLabel("Min:"), 0, 0) self.min = QtGui.QDoubleSpinBox() disable_scroll_wheel(self.min) apply_properties(self.min) self.addWidget(self.min, 0, 1) self.addWidget(QtGui.QLabel("Max:"), 1, 0) self.max = QtGui.QDoubleSpinBox() disable_scroll_wheel(self.max) apply_properties(self.max) self.addWidget(self.max, 1, 1) self.addWidget(QtGui.QLabel("#Points:"), 2, 0) self.npoints = QtGui.QSpinBox() disable_scroll_wheel(self.npoints) self.npoints.setMinimum(2) self.npoints.setValue(10) self.addWidget(self.npoints, 2, 1) self.min.setValue(state["min"]/scale) self.max.setValue(state["max"]/scale) self.npoints.setValue(state["npoints"]) def update_min(value): state["min"] = value*scale def update_max(value): state["min"] = value*scale def update_npoints(value): state["npoints"] = value self.min.valueChanged.connect(update_min) self.max.valueChanged.connect(update_max) self.npoints.valueChanged.connect(update_npoints)
def __init__(self, state): LayoutWidget.__init__(self) self.value = QtGui.QLineEdit() self.addWidget(QtGui.QLabel("Sequence:"), 0, 0) self.addWidget(self.value, 0, 1) float_regexp = "[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?" regexp = "(float)?( +float)* *".replace("float", float_regexp) self.value.setValidator(QtGui.QRegExpValidator(QtCore.QRegExp(regexp), self.value)) self.value.setText(" ".join([str(x) for x in state["sequence"]])) def update(text): state["sequence"] = [float(x) for x in text.split()] self.value.textEdited.connect(update)