diff --git a/artiq/gui/entries.py b/artiq/gui/entries.py index 8dc0a9ea3..2eab00ad6 100644 --- a/artiq/gui/entries.py +++ b/artiq/gui/entries.py @@ -212,14 +212,15 @@ class _ExplicitScan(LayoutWidget): self.addWidget(QtWidgets.QLabel("Sequence:"), 0, 0) self.addWidget(self.value, 0, 1) - float_regexp = "[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?" + float_regexp = r"(([+-]?\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?)" 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()] + if self.value.hasAcceptableInput(): + state["sequence"] = [float(x) for x in text.split()] self.value.textEdited.connect(update)