def __init__(self, parent=None, parameterDict=None): super(ParameterTableModel, self).__init__(parent) self.parameterDict = parameterDict if parameterDict else SequenceDict() self.column = enum('name', 'value') self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175) self.dataLookup = { (QtCore.Qt.DisplayRole, self.column.name): lambda param: param.name if param.dataType != 'action' else None, (QtCore.Qt.DisplayRole, self.column.value): lambda param: (str(param.value) if param.dataType != 'multiselect' else ' | '.join(param.value)) if param.dataType != 'bool' else None, (QtCore.Qt.EditRole, self.column.value): lambda param: firstNotNone(param.text, param.value), (QtCore.Qt.ToolTipRole, self.column.name): lambda param: param.tooltip, (QtCore.Qt.ToolTipRole, self.column.value): lambda param: firstNotNone(param.text, param.tooltip), (QtCore.Qt.CheckStateRole, self.column.value): lambda param: (QtCore.Qt.Checked if param.value else QtCore.Qt.Unchecked) if param.dataType == 'bool' else None, (QtCore.Qt.BackgroundColorRole, self.column.value): lambda param: self.textBG if param.text else None } self.setDataLookup = { (QtCore.Qt.EditRole, self.column.value): self.setValue, (QtCore.Qt.UserRole, self.column.value): self.setText, (QtCore.Qt.CheckStateRole, self.column.value): self.setValue }
def __init__(self, ddsChannels, globalDict, parent=None, *args): QtCore.QAbstractTableModel.__init__(self, parent, *args) # scanNames are given as a SortedDict self.ddsChannels = ddsChannels self.defaultBG = QtGui.QColor(QtCore.Qt.white) self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175) self.dataLookup = { (QtCore.Qt.CheckStateRole, 0): lambda row: QtCore.Qt.Checked if self.ddsChannels[row].enabled else QtCore.Qt.Unchecked, (QtCore.Qt.DisplayRole, 1): lambda row: self.ddsChannels[row].name, (QtCore.Qt.DisplayRole, 2): lambda row: str(self.ddsChannels[row].frequency), (QtCore.Qt.DisplayRole, 3): lambda row: str(self.ddsChannels[row].phase), (QtCore.Qt.DisplayRole, 4): lambda row: str(self.ddsChannels[row].amplitude), (QtCore.Qt.EditRole, 1): lambda row: self.ddsChannels[row].name, (QtCore.Qt.EditRole, 2): lambda row: firstNotNone( self.ddsChannels[row].frequencyText, str(self.ddsChannels[row].frequency)), (QtCore.Qt.EditRole, 3): lambda row: firstNotNone( self.ddsChannels[row].phaseText, str(self.ddsChannels[row].phase)), (QtCore.Qt.EditRole, 4): lambda row: firstNotNone( self.ddsChannels[row].amplitudeText, str(self.ddsChannels[row].amplitude)), (QtCore.Qt.BackgroundColorRole, 2): lambda row: self.defaultBG if self.ddsChannels[row].frequencyText is None else self.textBG, (QtCore.Qt.BackgroundColorRole, 3): lambda row: self.defaultBG if self.ddsChannels[row].phaseText is None else self.textBG, (QtCore.Qt.BackgroundColorRole, 4): lambda row: self.defaultBG if self.ddsChannels[row].amplitudeText is None else self.textBG, (QtCore.Qt.CheckStateRole, 5): lambda row: QtCore.Qt.Checked if self.ddsChannels[row].squareEnabled else QtCore.Qt.Unchecked, } self.setDataLookup = { (QtCore.Qt.CheckStateRole, 0): self.setEnabled, (QtCore.Qt.EditRole, 1): self.setName, (QtCore.Qt.EditRole, 2): self.setFrequency, (QtCore.Qt.EditRole, 3): self.setPhase, (QtCore.Qt.EditRole, 4): self.setAmplitude, (QtCore.Qt.UserRole, 2): partial( self.setFieldText, 'frequencyText'), (QtCore.Qt.UserRole, 3): partial( self.setFieldText, 'phaseText'), (QtCore.Qt.UserRole, 4): partial( self.setFieldText, 'amplitudeText'), (QtCore.Qt.CheckStateRole, 5): self.setSquareEnabled, } self.globalDict = globalDict
def updateComboBoxes(self): self.axisDict = dict( {"Started": ('measurement', None, 'startDate') } ) self.axisDict.update( dict( ((col[2], col) for col in self.measurementModel.extraColumns) ) ) updateComboBoxItems(self.xComboBox, sorted(self.axisDict.keys()), self.settings.plotXAxis) updateComboBoxItems(self.yComboBox, sorted(self.axisDict.keys()), self.settings.plotYAxis) self.settings.plotXAxis = firstNotNone( self.settings.plotXAxis, str(self.xComboBox.currentText()) ) self.settings.plotYAxis = firstNotNone( self.settings.plotYAxis, str(self.yComboBox.currentText()) )
def __init__(self, config, globalDict, parent=None, *args): QtCore.QAbstractTableModel.__init__(self, parent, *args) self.config = config self.dataLookup = { (QtCore.Qt.CheckStateRole, 0): lambda row: QtCore.Qt.Checked if self.pushVariables.at(row).push else QtCore.Qt.Unchecked, (QtCore.Qt.DisplayRole, 1): lambda row: str(self.pushVariables.at(row).destinationName), (QtCore.Qt.DisplayRole, 2): lambda row: str(self.pushVariables.at(row).variableName), (QtCore.Qt.DisplayRole, 3): lambda row: str(self.pushVariables.at(row).definition), (QtCore.Qt.DisplayRole, 4): lambda row: str(self.pushVariables.at(row).value), (QtCore.Qt.DisplayRole, 5): lambda row: str(self.pushVariables.at(row).minimum), (QtCore.Qt.DisplayRole, 6): lambda row: str(self.pushVariables.at(row).maximum), (QtCore.Qt.EditRole, 1): lambda row: self.pushVariables.at(row).destinationName, (QtCore.Qt.EditRole, 2): lambda row: self.pushVariables.at(row).variableName, (QtCore.Qt.EditRole, 3): lambda row: self.pushVariables.at(row).definition, (QtCore.Qt.EditRole, 5): lambda row: firstNotNone( self.pushVariables.at(row).strMinimum, str(self.pushVariables.at(row).minimum)), (QtCore.Qt.EditRole, 6): lambda row: firstNotNone( self.pushVariables.at(row).strMaximum, str(self.pushVariables.at(row).maximum)), (QtCore.Qt.BackgroundRole, 4): lambda row: self.backgroundLookup[self.pushVariables.at(row).valueStatus], (QtCore.Qt.BackgroundRole, 5): lambda row: self.backgroundLookup[self.pushVariables.at(row).hasStrMinimum], (QtCore.Qt.BackgroundRole, 6): lambda row: self.backgroundLookup[self.pushVariables.at(row).hasStrMaximum] } self.setDataLookup = { (QtCore.Qt.EditRole, 1): self.setDataDestinationName, (QtCore.Qt.EditRole, 2): self.setDataVariableName, (QtCore.Qt.UserRole, 3): self.setDataDefinition, (QtCore.Qt.EditRole, 5): self.setDataMinimum, (QtCore.Qt.EditRole, 6): self.setDataMaximum, (QtCore.Qt.UserRole, 5): self.setDataStrMinimum, (QtCore.Qt.UserRole, 6): self.setDataStrMaximum, (QtCore.Qt.CheckStateRole, 0): self.setDataPush } self.pushVariables = None self.fitfunction = None self.pushDestinations = dict() self.globalDict = globalDict
def __init__(self, config, globalDict, parent=None, *args): QtCore.QAbstractTableModel.__init__(self, parent, *args) self.config = config self.dataLookup = { (QtCore.Qt.CheckStateRole, 0): lambda row: QtCore.Qt.Checked if self.pushVariables.at(row).push else QtCore.Qt.Unchecked, (QtCore.Qt.DisplayRole, 1): lambda row: str(self.pushVariables.at(row).destinationName), (QtCore.Qt.DisplayRole, 2): lambda row: str(self.pushVariables.at(row).variableName), (QtCore.Qt.DisplayRole, 3): lambda row: str(self.pushVariables.at(row).definition), (QtCore.Qt.DisplayRole, 4): lambda row: str(self.pushVariables.at(row).value), (QtCore.Qt.DisplayRole, 5): lambda row: str(self.pushVariables.at(row).minimum), (QtCore.Qt.DisplayRole, 6): lambda row: str(self.pushVariables.at(row).maximum), (QtCore.Qt.EditRole, 1): lambda row: self.pushVariables.at(row).destinationName, (QtCore.Qt.EditRole, 2): lambda row: self.pushVariables.at(row).variableName, (QtCore.Qt.EditRole, 3): lambda row: self.pushVariables.at(row).definition, (QtCore.Qt.EditRole, 5): lambda row: firstNotNone( self.pushVariables.at(row).strMinimum, str(self.pushVariables.at(row).minimum)), (QtCore.Qt.EditRole, 6): lambda row: firstNotNone( self.pushVariables.at(row).strMaximum, str(self.pushVariables.at(row).maximum)), (QtCore.Qt.BackgroundRole, 4): lambda row: self.backgroundLookup[self.pushVariables.at(row). valueStatus], (QtCore.Qt.BackgroundRole, 5): lambda row: self.backgroundLookup[self.pushVariables.at(row). hasStrMinimum], (QtCore.Qt.BackgroundRole, 6): lambda row: self.backgroundLookup[self.pushVariables.at(row). hasStrMaximum] } self.setDataLookup = { (QtCore.Qt.EditRole, 1): self.setDataDestinationName, (QtCore.Qt.EditRole, 2): self.setDataVariableName, (QtCore.Qt.UserRole, 3): self.setDataDefinition, (QtCore.Qt.EditRole, 5): self.setDataMinimum, (QtCore.Qt.EditRole, 6): self.setDataMaximum, (QtCore.Qt.UserRole, 5): self.setDataStrMinimum, (QtCore.Qt.UserRole, 6): self.setDataStrMaximum, (QtCore.Qt.CheckStateRole, 0): self.setDataPush } self.pushVariables = None self.fitfunction = None self.pushDestinations = dict() self.globalDict = globalDict
def __init__(self, ddsChannels, globalDict, parent=None, *args): QtCore.QAbstractTableModel.__init__(self, parent, *args) # scanNames are given as a SortedDict self.ddsChannels = ddsChannels self.defaultBG = QtGui.QColor(QtCore.Qt.white) self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175) self.dataLookup = { (QtCore.Qt.CheckStateRole, 0): lambda row: QtCore.Qt.Checked if self.ddsChannels[row].enabled else QtCore.Qt.Unchecked, (QtCore.Qt.DisplayRole, 1): lambda row: self.ddsChannels[row].name, (QtCore.Qt.DisplayRole, 2): lambda row: str(self.ddsChannels[row].frequency), (QtCore.Qt.DisplayRole, 3): lambda row: str(self.ddsChannels[row].phase), (QtCore.Qt.DisplayRole, 4): lambda row: str(self.ddsChannels[row].amplitude), (QtCore.Qt.EditRole, 1): lambda row: self.ddsChannels[row].name, (QtCore.Qt.EditRole, 2): lambda row: firstNotNone(self.ddsChannels[row].frequencyText, str(self.ddsChannels[row].frequency)), (QtCore.Qt.EditRole, 3): lambda row: firstNotNone(self.ddsChannels[row].phaseText, str(self.ddsChannels[row].phase)), (QtCore.Qt.EditRole, 4): lambda row: firstNotNone(self.ddsChannels[row].amplitudeText, str(self.ddsChannels[row].amplitude)), (QtCore.Qt.BackgroundColorRole, 2): lambda row: self.defaultBG if self.ddsChannels[row].frequencyText is None else self.textBG, (QtCore.Qt.BackgroundColorRole, 3): lambda row: self.defaultBG if self.ddsChannels[row].phaseText is None else self.textBG, (QtCore.Qt.BackgroundColorRole, 4): lambda row: self.defaultBG if self.ddsChannels[row].amplitudeText is None else self.textBG, (QtCore.Qt.CheckStateRole, 5): lambda row: QtCore.Qt.Checked if self.ddsChannels[row].squareEnabled else QtCore.Qt.Unchecked, } self.setDataLookup = { (QtCore.Qt.CheckStateRole, 0): self.setEnabled, (QtCore.Qt.EditRole, 1): self.setName, (QtCore.Qt.EditRole, 2): self.setFrequency, (QtCore.Qt.EditRole, 3): self.setPhase, (QtCore.Qt.EditRole, 4): self.setAmplitude, (QtCore.Qt.UserRole, 2): partial(self.setFieldText, 'frequencyText'), (QtCore.Qt.UserRole, 3): partial(self.setFieldText, 'phaseText'), (QtCore.Qt.UserRole, 4): partial(self.setFieldText, 'amplitudeText'), (QtCore.Qt.CheckStateRole, 5): self.setSquareEnabled, } self.globalDict = globalDict
def __init__(self, parent=None, noMessageIcon=None, messageIcon=None, maxMessages=None, messageName=None): QtWidgets.QToolButton.__init__(self, parent) self.myMenu = QtWidgets.QMenu(self) self.setMenu(self.myMenu) self.setPopupMode(QtWidgets.QToolButton.InstantPopup) self.exceptionsListed = 0 self.NoExceptionsIcon = QtGui.QIcon(firstNotNone(noMessageIcon, ":/petersIcons/icons/Success-01.png")) self.ExceptionsIcon = QtGui.QIcon(firstNotNone(messageIcon, ":/petersIcons/icons/Error-01.png")) self.setIcon(self.NoExceptionsIcon) self.menuItemDict = dict() self.maxMessages = maxMessages self.clearAllMessage = "Clear All {0}".format(firstNotNone(messageName, "exceptions"))
def updateComboBoxes(self): self.axisDict = dict({"Started": ('measurement', None, 'startDate')}) self.axisDict.update( dict( ((col[2], col) for col in self.measurementModel.extraColumns))) updateComboBoxItems(self.xComboBox, sorted(self.axisDict.keys()), self.settings.plotXAxis) updateComboBoxItems(self.yComboBox, sorted(self.axisDict.keys()), self.settings.plotYAxis) self.settings.plotXAxis = firstNotNone( self.settings.plotXAxis, str(self.xComboBox.currentText())) self.settings.plotYAxis = firstNotNone( self.settings.plotYAxis, str(self.yComboBox.currentText()))
def onActiveInstrumentChanged(self, modelIndex, modelIndex2): measurement = self.container.measurements[modelIndex.row()] self.parameterModel.setParameters(measurement.parameters) self.resultModel.setResults(measurement.results) self.plainTextEdit.setPlainText( firstNotNone(measurement.longComment, "")) self.currentMeasurement = measurement
def loadShuttleDef(self, filename): if filename is not None: self.shuttlingDefinitionFile = filename if os.path.exists(filename): tree = ElementTree.parse(filename) root = tree.getroot() # load pulse definition ShuttlingGraphElement = root.find("ShuttlingGraph") newGraph = ShuttlingGraph.fromXmlElement(ShuttlingGraphElement) matchingPos = newGraph.getMatchingPosition( self.shuttlingGraph ) # Try to match previous graph node/position self.shuttlingGraph = newGraph self.shuttleEdgeTableModel.setShuttlingGraph( self.shuttlingGraph) self.currentPositionLabel.setText( firstNotNone(self.shuttlingGraph.currentPositionName, "")) self.shuttlingGraph.currentPositionObservable.subscribe( self.onCurrentPositionEvent) self.shuttlingGraph.graphChangedObservable.subscribe( self.setupGraphDependent) self.setupGraphDependent() self.setPosition(matchingPos) self.updateOutput.emit( self.adjust, True ) # Update the output voltages by setting updateHardware to True
def __init__(self, controlUi, parameterList=[], parent=None): super(ExternalParameterControlModel, self).__init__(parameterList, parent, nodeNameAttr='displayName') self.parameterList=parameterList self.controlUi = controlUi for parameter in parameterList: parameter.categories = parameter.device.name self.headerLookup.update({ (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 0): 'Name', (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 1): 'Control', (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 2): 'External' }) self.dataLookup.update({ (QtCore.Qt.DisplayRole, 0): lambda node: node.content.displayName, (QtCore.Qt.DisplayRole, 1): lambda node: str(node.content.targetValue), (QtCore.Qt.EditRole, 1): lambda node: firstNotNone( node.content.string, str(node.content.targetValue) ), (QtCore.Qt.UserRole, 1): lambda node: node.content.dimension, (QtCore.Qt.DisplayRole, 2): lambda node: str(node.content.value), (QtCore.Qt.BackgroundRole, 1): self.dependencyBgFunction, (QtCore.Qt.ToolTipRole, 1): self.toolTipFunction }) self.setDataLookup.update({ (QtCore.Qt.EditRole, 1): lambda index, value: self.setValue(index, value), (QtCore.Qt.UserRole, 1): lambda index, value: self.setStrValue(index, value), }) self.flagsLookup = { 1:QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsSelectable } self.numColumns = 3 self.allowReordering = True self.signalConnections = list()
def setupUi(self, parent): VoltageAdjustForm.setupUi(self, parent) self.lineBox.globalDict = self.settings.adjust.globalDict self.lineGainBox.globalDict = self.settings.adjust.globalDict self.globalGainBox.globalDict = self.settings.adjust.globalDict self.lineBox.setExpression( self.adjust._line ) self.currentLineDisplay.setText(str(self.adjust._line)) self.lineGainBox.setExpression( self.adjust._lineGain ) self.globalGainBox.setExpression( self.adjust._globalGain ) self.adjust.dataChanged.connect(self.onExpressionChanged) self.triggerButton.clicked.connect( self.onTrigger ) # Shuttling self.addEdgeButton.clicked.connect( self.addShuttlingEdge ) self.removeEdgeButton.clicked.connect( self.removeShuttlingEdge ) self.shuttleEdgeTableModel = ShuttleEdgeTableModel(self.config, self.shuttlingGraph) self.delegate = ComboBoxDelegate() self.edgeTableView.setModel(self.shuttleEdgeTableModel) self.edgeTableView.setItemDelegateForColumn( 8, self.delegate ) self.edgeTableView.setItemDelegateForColumn(10, self.delegate ) self.currentPositionLabel.setText( firstNotNone( self.shuttlingGraph.currentPositionName, "" ) ) self.shuttlingGraph.currentPositionObservable.subscribe( self.onCurrentPositionEvent ) self.shuttlingGraph.graphChangedObservable.subscribe( self.setupGraphDependent ) self.setupGraphDependent() self.uploadDataButton.clicked.connect( self.onUploadData ) self.uploadEdgesButton.clicked.connect( self.onUploadEdgesButton ) restoreGuiState(self, self.config.get('VoltageAdjust.GuiState')) self.destinationComboBox.currentIndexChanged[str].connect( self.onShuttleSequence ) self.shuttlingRouteEdit.setText( " ".join(self.settings.shuttlingRoute) ) self.shuttlingRouteEdit.editingFinished.connect( self.onSetShuttlingRoute ) self.shuttlingRouteButton.clicked.connect( self.onShuttlingRoute ) self.repetitionBox.setValue(self.settings.shuttlingRepetitions) self.repetitionBox.valueChanged.connect( self.onShuttlingRepetitions )
def __init__(self, settings, globalDict, parent=None, *args): QtCore.QAbstractTableModel.__init__(self, parent, *args) self.settings = settings self.globalDict = globalDict self.defaultBG = QtGui.QColor(QtCore.Qt.white) self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175) self.column = enum('variable', 'value') self.defaultFontName = "Segoe UI" self.defaultFontSize = 9 self.normalFont = QtGui.QFont(self.defaultFontName, self.defaultFontSize, QtGui.QFont.Normal) self.boldFont = QtGui.QFont(self.defaultFontName, self.defaultFontSize, QtGui.QFont.Bold) self.dataLookup = { (QtCore.Qt.DisplayRole, self.column.variable): lambda row: self.settings.varDict.keyAt(row), (QtCore.Qt.DisplayRole, self.column.value): lambda row: str(self.settings.varDict.at(row)['value']), (QtCore.Qt.FontRole, self.column.variable): lambda row: self.boldFont if self.settings.varDict.keyAt(row).startswith('Duration') else self.normalFont, (QtCore.Qt.FontRole, self.column.value): lambda row: self.boldFont if self.settings.varDict.keyAt(row).startswith('Duration') else self.normalFont, (QtCore.Qt.EditRole, self.column.value): lambda row: firstNotNone( self.settings.varDict.at(row)['text'], str(self.settings.varDict.at(row)['value'])), (QtCore.Qt.BackgroundColorRole, self.column.value): lambda row: self.defaultBG if self.settings.varDict.at(row)['text'] is None else self.textBG, (QtCore.Qt.ToolTipRole, self.column.value): lambda row: self.settings.varDict.at(row)['text'] if self.settings.varDict.at(row)['text'] else None } self.setDataLookup = { (QtCore.Qt.EditRole, self.column.value): self.setValue, (QtCore.Qt.UserRole, self.column.value): self.setText }
def setPosition(self, line): if self.currentPosition != line: self.currentPosition = line self.currentPositionName = self.position(line) self.currentPositionObservable.fire(line=line, text=firstNotNone( self.currentPositionName, ""))
def loadLine(self, entry ): currentname, currentwidget = self.currentScan() # switch to the scan for the first line if entry.scan!=currentname: self.setCurrentScan(entry.scan) # load the correct measurement currentwidget.scanControlWidget.loadSetting( entry.measurement ) currentwidget.evaluationControlWidget.loadSetting( entry.evaluation ) currentwidget.analysisControlWidget.onLoadAnalysisConfiguration( firstNotNone( entry.analysis, "") )
def __init__(self, parent=None, parameterDict=None): super(ParameterTableModel, self).__init__(parent) self.parameterDict = parameterDict if parameterDict else SequenceDict() self.column = enum('name', 'value') self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175) self.dataLookup = { (QtCore.Qt.DisplayRole, self.column.name): lambda param: param.name if param.dataType!='action' else None, (QtCore.Qt.DisplayRole, self.column.value): lambda param: (str(param.value) if param.dataType!='multiselect' else ' | '.join(param.value)) if param.dataType!='bool' else None, (QtCore.Qt.EditRole, self.column.value): lambda param: firstNotNone(param.text, param.value), (QtCore.Qt.ToolTipRole, self.column.name): lambda param: param.tooltip, (QtCore.Qt.ToolTipRole, self.column.value): lambda param: firstNotNone(param.text, param.tooltip), (QtCore.Qt.CheckStateRole, self.column.value): lambda param: (QtCore.Qt.Checked if param.value else QtCore.Qt.Unchecked) if param.dataType=='bool' else None, (QtCore.Qt.BackgroundColorRole, self.column.value): lambda param: self.textBG if param.text else None } self.setDataLookup = { (QtCore.Qt.EditRole, self.column.value): self.setValue, (QtCore.Qt.UserRole, self.column.value): self.setText, (QtCore.Qt.CheckStateRole, self.column.value): self.setValue }
def __init__(self, parent=None, noMessageIcon=None, messageIcon=None, maxMessages=None, messageName=None): QtWidgets.QToolButton.__init__(self, parent) self.myMenu = QtWidgets.QMenu(self) self.setMenu(self.myMenu) self.setPopupMode(QtWidgets.QToolButton.InstantPopup) self.exceptionsListed = 0 self.NoExceptionsIcon = QtGui.QIcon( firstNotNone(noMessageIcon, ":/petersIcons/icons/Success-01.png")) self.ExceptionsIcon = QtGui.QIcon( firstNotNone(messageIcon, ":/petersIcons/icons/Error-01.png")) self.setIcon(self.NoExceptionsIcon) self.menuItemDict = dict() self.maxMessages = maxMessages self.clearAllMessage = "Clear All {0}".format( firstNotNone(messageName, "exceptions"))
def addTraceui(self, scan, traceui): self.traceuiLookup[scan] = traceui self.plotWindowIndex = dict( (("{0}.{1}".format(key, item), (ui, item, d["view"])) for key, ui in self.traceuiLookup.items() for item, d in ui.graphicsViewDict.items())) updateComboBoxItems(self.windowComboBox, sorted(self.plotWindowIndex.keys()), self.settings.plotWindow) self.settings.plotWindow = firstNotNone( self.settings.plotWindow, str(self.windowComboBox.currentText()))
def setTrapped(self): self.changeSettings('Trapped') self.startButton.setEnabled( True ) self.stopButton.setEnabled( True ) self.elapsedLabel.setStyleSheet("QLabel { color:green; }") self.statusLabel.setText("Trapped :)") self.trappingTime = firstNotNone(self.loadingHistory.lastEvent().trappingTime, now()) self.timerNullTime = self.trappingTime self.trappingTime = self.trappingTime # self.checkStarted = self.trappingTime self.ionReappeared.emit()
def shuttlePath(self, fromName, toName ): fromName = firstNotNone(fromName, self.currentPositionName) fromName = fromName if fromName else self.position(float(self.currentPosition)) if fromName not in self.shuttlingGraph: raise ShuttlingGraphException("Shuttling failed, origin '{0}' is not a valid shuttling node".format(fromName)) if toName not in self.shuttlingGraph: raise ShuttlingGraphException("Shuttling failed, target '{0}' is not a valid shuttling node".format(toName)) sp = shortest_path(self.shuttlingGraph, fromName, toName) path = list() for a, b in pairs_iter(sp): edge = sorted(self.shuttlingGraph.edge[a][b].values(), key=itemgetter('weight'))[0]['edge'] path.append((a, b, edge, self.index(edge))) return path
def __init__(self, controlUi, parameterList=[], parent=None): super(ExternalParameterControlModel, self).__init__(parameterList, parent, nodeNameAttr='displayName') self.parameterList = parameterList self.controlUi = controlUi for parameter in parameterList: parameter.categories = parameter.device.name self.headerLookup.update({ (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 0): 'Name', (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 1): 'Control', (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 2): 'External' }) self.dataLookup.update({ (QtCore.Qt.DisplayRole, 0): lambda node: node.content.displayName, (QtCore.Qt.DisplayRole, 1): lambda node: str(node.content.targetValue), (QtCore.Qt.EditRole, 1): lambda node: firstNotNone(node.content.string, str(node.content.targetValue)), (QtCore.Qt.UserRole, 1): lambda node: node.content.dimension, (QtCore.Qt.DisplayRole, 2): lambda node: str(node.content.value), (QtCore.Qt.BackgroundRole, 1): self.dependencyBgFunction, (QtCore.Qt.ToolTipRole, 1): self.toolTipFunction }) self.setDataLookup.update({ (QtCore.Qt.EditRole, 1): lambda index, value: self.setValue(index, value), (QtCore.Qt.UserRole, 1): lambda index, value: self.setStrValue(index, value), }) self.flagsLookup = { 1: QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsSelectable } self.numColumns = 3 self.allowReordering = True self.signalConnections = list()
def __init__(self, updateSaveStatus, globalVariables, scanSegments=None, parent=None): super(ScanSegmentTableModel, self).__init__(parent) self.scanSegmentList = scanSegments if scanSegments is not None else list() self.updateSaveStatus = updateSaveStatus self.setDataLookup = { (QtCore.Qt.EditRole, 0): partial( self.setField, 'start'), (QtCore.Qt.EditRole, 1): partial( self.setField, 'stop'), (QtCore.Qt.EditRole, 2): partial( self.setField, 'center'), (QtCore.Qt.EditRole, 3): partial( self.setField, 'span'), (QtCore.Qt.EditRole, 4): partial( self.setField, 'steps'), (QtCore.Qt.EditRole, 5): partial( self.setField, 'stepsize'), (QtCore.Qt.UserRole, 0): partial( self.setFieldText, 'startText'), (QtCore.Qt.UserRole, 1): partial( self.setFieldText, 'stopText'), (QtCore.Qt.UserRole, 2): partial( self.setFieldText, 'centerText'), (QtCore.Qt.UserRole, 3): partial( self.setFieldText, 'spanText'), (QtCore.Qt.UserRole, 4): partial( self.setFieldText, 'stepsText'), (QtCore.Qt.UserRole, 5): partial( self.setFieldText, 'stepsizeText') } self.dataLookup = { (QtCore.Qt.DisplayRole, 0): lambda self, column: str(self.scanSegmentList[column].start), (QtCore.Qt.DisplayRole, 1): lambda self, column: str(self.scanSegmentList[column].stop), (QtCore.Qt.DisplayRole, 2): lambda self, column: str(self.scanSegmentList[column].center), (QtCore.Qt.DisplayRole, 3): lambda self, column: str(self.scanSegmentList[column].span), (QtCore.Qt.DisplayRole, 4): lambda self, column: str(self.scanSegmentList[column].steps), (QtCore.Qt.DisplayRole, 5): lambda self, column: str(self.scanSegmentList[column].stepsize), (QtCore.Qt.EditRole, 0): lambda self, column: firstNotNone( self.scanSegmentList[column].startText, str(self.scanSegmentList[column].start)), (QtCore.Qt.EditRole, 1): lambda self, column: firstNotNone( self.scanSegmentList[column].stopText, str(self.scanSegmentList[column].stop)), (QtCore.Qt.EditRole, 2): lambda self, column: firstNotNone( self.scanSegmentList[column].centerText, str(self.scanSegmentList[column].center)), (QtCore.Qt.EditRole, 3): lambda self, column: firstNotNone( self.scanSegmentList[column].spanText, str(self.scanSegmentList[column].span)), (QtCore.Qt.EditRole, 4): lambda self, column: firstNotNone( self.scanSegmentList[column].stepsText, str(self.scanSegmentList[column].steps)), (QtCore.Qt.EditRole, 5): lambda self, column: firstNotNone( self.scanSegmentList[column].stepsizeText, str(self.scanSegmentList[column].stepsize)), (QtCore.Qt.BackgroundColorRole, 0): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._startText is not None)], (QtCore.Qt.BackgroundColorRole, 1): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._stopText is not None)], (QtCore.Qt.BackgroundColorRole, 2): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._centerText is not None)], (QtCore.Qt.BackgroundColorRole, 3): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._spanText is not None)], (QtCore.Qt.BackgroundColorRole, 4): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._stepsText is not None)], (QtCore.Qt.BackgroundColorRole, 5): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._stepsizeText is not None)], (QtCore.Qt.ToolTipRole, 0): lambda self, column: self.scanSegmentList[column]._startText if self.scanSegmentList[column]._startText is not None else None, (QtCore.Qt.ToolTipRole, 1): lambda self, column: self.scanSegmentList[column]._stopText if self.scanSegmentList[column]._stopText is not None else None, (QtCore.Qt.ToolTipRole, 2): lambda self, column: self.scanSegmentList[column]._centerText if self.scanSegmentList[column]._centerText is not None else None, (QtCore.Qt.ToolTipRole, 3): lambda self, column: self.scanSegmentList[column]._spanText if self.scanSegmentList[column]._spanText is not None else None, (QtCore.Qt.ToolTipRole, 4): lambda self, column: self.scanSegmentList[column]._stepsText if self.scanSegmentList[column]._stepsText is not None else None, (QtCore.Qt.ToolTipRole, 5): lambda self, column: self.scanSegmentList[column]._stepsizeText if self.scanSegmentList[column]._stepsizeText is not None else None, (QtCore.Qt.FontRole, 4): lambda self, column: self.fontLookup[self.scanSegmentList[column]._stepPreference=='steps'], (QtCore.Qt.FontRole, 5): lambda self, column: self.fontLookup[self.scanSegmentList[column]._stepPreference=='stepsize'] } self.globalDict = globalVariables defaultBG = QtGui.QColor(QtCore.Qt.white) inconsistentBG = QtGui.QColor(0xff, 0xa6, 0xa6, 0xff) textBG = QtGui.QColor(QtCore.Qt.green).lighter(175) preferenceFont = QtGui.QFont("MS Shell Dlg 2", -1, QtGui.QFont.DemiBold, False) regularFont = QtGui.QFont("MS Shell Dlg 2", -1, QtGui.QFont.Normal, False) self.fontLookup = { True: preferenceFont, False: regularFont} self.backgroundLookup = { (True, True):inconsistentBG, (True, False):inconsistentBG, (False, True):textBG, (False, False):defaultBG}
def loadShuttleDef(self, filename): if filename is not None: self.shuttlingDefinitionFile = filename if os.path.exists(filename): tree = ElementTree.parse(filename) root = tree.getroot() # load pulse definition ShuttlingGraphElement = root.find("ShuttlingGraph") newGraph = ShuttlingGraph.fromXmlElement(ShuttlingGraphElement) matchingPos = newGraph.getMatchingPosition(self.shuttlingGraph) # Try to match previous graph node/position self.shuttlingGraph = newGraph self.shuttleEdgeTableModel.setShuttlingGraph(self.shuttlingGraph) self.currentPositionLabel.setText( firstNotNone( self.shuttlingGraph.currentPositionName, "" ) ) self.shuttlingGraph.currentPositionObservable.subscribe( self.onCurrentPositionEvent ) self.shuttlingGraph.graphChangedObservable.subscribe( self.setupGraphDependent ) self.setupGraphDependent() self.setPosition(matchingPos) self.updateOutput.emit(self.adjust, True) # Update the output voltages by setting updateHardware to True
def __init__(self, dacChannels, globalDict, parent=None, *args): QtCore.QAbstractTableModel.__init__(self, parent, *args) # scanNames are given as a SortedDict self.dacChannels = dacChannels self.defaultBG = QtGui.QColor(QtCore.Qt.white) self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175) self.dataLookup = { (QtCore.Qt.CheckStateRole, 0): lambda row: QtCore.Qt.Checked if self.dacChannels[row].enabled else QtCore.Qt.Unchecked, (QtCore.Qt.DisplayRole, 1): lambda row: self.dacChannels[row].name, (QtCore.Qt.DisplayRole, 2): lambda row: str(self.dacChannels[row].voltage), (QtCore.Qt.EditRole, 1): lambda row: self.dacChannels[row].name, (QtCore.Qt.EditRole, 2): lambda row: firstNotNone( self.dacChannels[row].voltageText, str(self.dacChannels[row].voltage)), (QtCore.Qt.BackgroundColorRole, 2): lambda row: self.textBG if self.dacChannels[row]._voltage.hasDependency else self.defaultBG, (QtCore.Qt.CheckStateRole, 3): lambda row: QtCore.Qt.Checked if self.dacChannels[row].resetAfterPP else QtCore.Qt.Unchecked, } self.setDataLookup = { (QtCore.Qt.CheckStateRole, 0): self.setEnabled, (QtCore.Qt.EditRole, 1): self.setName, (QtCore.Qt.EditRole, 2): self.setVoltage, (QtCore.Qt.UserRole, 2): partial( self.setFieldText, 'voltageText'), (QtCore.Qt.CheckStateRole, 3): self.setResetAfterPP, } self.globalDict = globalDict
def setupUi(self, parent): VoltageAdjustForm.setupUi(self, parent) self.lineBox.globalDict = self.settings.adjust.globalDict self.lineGainBox.globalDict = self.settings.adjust.globalDict self.globalGainBox.globalDict = self.settings.adjust.globalDict self.lineBox.setExpression(self.adjust._line) self.currentLineDisplay.setText(str(self.adjust._line)) self.lineGainBox.setExpression(self.adjust._lineGain) self.globalGainBox.setExpression(self.adjust._globalGain) self.adjust.dataChanged.connect(self.onExpressionChanged) self.triggerButton.clicked.connect(self.onTrigger) # Shuttling self.addEdgeButton.clicked.connect(self.addShuttlingEdge) self.removeEdgeButton.clicked.connect(self.removeShuttlingEdge) self.shuttleEdgeTableModel = ShuttleEdgeTableModel( self.config, self.shuttlingGraph) self.delegate = ComboBoxDelegate() self.edgeTableView.setModel(self.shuttleEdgeTableModel) self.edgeTableView.setItemDelegateForColumn(8, self.delegate) self.edgeTableView.setItemDelegateForColumn(10, self.delegate) self.currentPositionLabel.setText( firstNotNone(self.shuttlingGraph.currentPositionName, "")) self.shuttlingGraph.currentPositionObservable.subscribe( self.onCurrentPositionEvent) self.shuttlingGraph.graphChangedObservable.subscribe( self.setupGraphDependent) self.setupGraphDependent() self.uploadDataButton.clicked.connect(self.onUploadData) self.uploadEdgesButton.clicked.connect(self.onUploadEdgesButton) restoreGuiState(self, self.config.get('VoltageAdjust.GuiState')) self.destinationComboBox.currentIndexChanged[str].connect( self.onShuttleSequence) self.shuttlingRouteEdit.setText(" ".join(self.settings.shuttlingRoute)) self.shuttlingRouteEdit.editingFinished.connect( self.onSetShuttlingRoute) self.shuttlingRouteButton.clicked.connect(self.onShuttlingRoute) self.repetitionBox.setValue(self.settings.shuttlingRepetitions) self.repetitionBox.valueChanged.connect(self.onShuttlingRepetitions)
def __init__(self, pulser, config, configName='PulserParameterUi', globalDict=None, parent=None): super(PulserParameterUi, self).__init__(parent) self.isSetup = False self.globalDict = firstNotNone( globalDict, dict() ) self.config = config self.configName = configName self.pulser = pulser if configName=='PulserParameterUi': self.pulserParamConfigName = "PulserParameterValues-{0:x}".format(self.pulser.hardwareConfigurationId()) else: self.pulserParamConfigName = "PulserParameterValues-{0}-{1:x}".format(configName, self.pulser.hardwareConfigurationId()) oldValues = self.config.get('PulserParameterValues', dict()) if self.pulserParamConfigName not in self.config else self.config[self.pulserParamConfigName] self.parameterList = list() pulserconfig = self.pulser.pulserConfiguration() self.currentWireValues = defaultdict( lambda: 0 ) if pulserconfig: for index, extendedWireIn in enumerate(pulserconfig.extendedWireIns): value, string = oldValues.get(extendedWireIn.name, (extendedWireIn.default, None)) parameter = PulserParameter(name=extendedWireIn.name, address=extendedWireIn.address, string=string, bitmask=extendedWireIn.bitmask, shift=extendedWireIn.shift, encoding=extendedWireIn.encoding, categories=extendedWireIn.categories, onChange=partial(self.onChange, index), globalDict=self.globalDict) self.parameterList.append( parameter ) parameter.value = value
def updateScanTarget(self, target, scannames): if target == "Internal": extended = ["None"] extended.extend(sorted(scannames)) else: extended = sorted(scannames) self.scanTargetDict[target] = extended updateComboBoxItems(self.comboBoxScanTarget, list(self.scanTargetDict.keys()), self.parameters.currentScanTarget) self.parameters.currentScanTarget = firstNotNone( self.parameters.currentScanTarget, target) if target == self.parameters.currentScanTarget: self.settings.scanParameter = str( updateComboBoxItems(self.comboBoxParameter, self.scanTargetDict[target], self.settings.scanParameter)) if not self.settings.scanTarget: self.settings.scanTarget = self.parameters.currentScanTarget if target == "Internal": updateComboBoxItems(self.parallelInternalScanComboBox, self.scanTargetDict[target], self.settings.parallelInternalScanParameter)
def data(self, index, role): if index.isValid(): if role == QtCore.Qt.DisplayRole: printer = firstNotNone(self.printers[index.column()], str) return printer(self.data[index.row()][index.column()]) return None
def __init__(self, updateSaveStatus, globalVariables, scanSegments=None, parent=None): super(ScanSegmentTableModel, self).__init__(parent) self.scanSegmentList = scanSegments if scanSegments is not None else list( ) self.updateSaveStatus = updateSaveStatus self.setDataLookup = { (QtCore.Qt.EditRole, 0): partial(self.setField, 'start'), (QtCore.Qt.EditRole, 1): partial(self.setField, 'stop'), (QtCore.Qt.EditRole, 2): partial(self.setField, 'center'), (QtCore.Qt.EditRole, 3): partial(self.setField, 'span'), (QtCore.Qt.EditRole, 4): partial(self.setField, 'steps'), (QtCore.Qt.EditRole, 5): partial(self.setField, 'stepsize'), (QtCore.Qt.UserRole, 0): partial(self.setFieldText, 'startText'), (QtCore.Qt.UserRole, 1): partial(self.setFieldText, 'stopText'), (QtCore.Qt.UserRole, 2): partial(self.setFieldText, 'centerText'), (QtCore.Qt.UserRole, 3): partial(self.setFieldText, 'spanText'), (QtCore.Qt.UserRole, 4): partial(self.setFieldText, 'stepsText'), (QtCore.Qt.UserRole, 5): partial(self.setFieldText, 'stepsizeText') } self.dataLookup = { (QtCore.Qt.DisplayRole, 0): lambda self, column: str(self.scanSegmentList[column].start), (QtCore.Qt.DisplayRole, 1): lambda self, column: str(self.scanSegmentList[column].stop), (QtCore.Qt.DisplayRole, 2): lambda self, column: str(self.scanSegmentList[column].center), (QtCore.Qt.DisplayRole, 3): lambda self, column: str(self.scanSegmentList[column].span), (QtCore.Qt.DisplayRole, 4): lambda self, column: str(self.scanSegmentList[column].steps), (QtCore.Qt.DisplayRole, 5): lambda self, column: str(self.scanSegmentList[column].stepsize), (QtCore.Qt.EditRole, 0): lambda self, column: firstNotNone( self.scanSegmentList[column].startText, str(self.scanSegmentList[column].start)), (QtCore.Qt.EditRole, 1): lambda self, column: firstNotNone( self.scanSegmentList[column].stopText, str(self.scanSegmentList[column].stop)), (QtCore.Qt.EditRole, 2): lambda self, column: firstNotNone( self.scanSegmentList[column].centerText, str(self.scanSegmentList[column].center)), (QtCore.Qt.EditRole, 3): lambda self, column: firstNotNone( self.scanSegmentList[column].spanText, str(self.scanSegmentList[column].span)), (QtCore.Qt.EditRole, 4): lambda self, column: firstNotNone( self.scanSegmentList[column].stepsText, str(self.scanSegmentList[column].steps)), (QtCore.Qt.EditRole, 5): lambda self, column: firstNotNone( self.scanSegmentList[column].stepsizeText, str(self.scanSegmentList[column].stepsize)), (QtCore.Qt.BackgroundColorRole, 0): lambda self, column: self.backgroundLookup[ (self.scanSegmentList[column].inconsistent, self. scanSegmentList[column]._startText is not None)], (QtCore.Qt.BackgroundColorRole, 1): lambda self, column: self.backgroundLookup[ (self.scanSegmentList[column].inconsistent, self. scanSegmentList[column]._stopText is not None)], (QtCore.Qt.BackgroundColorRole, 2): lambda self, column: self.backgroundLookup[ (self.scanSegmentList[column].inconsistent, self. scanSegmentList[column]._centerText is not None)], (QtCore.Qt.BackgroundColorRole, 3): lambda self, column: self.backgroundLookup[ (self.scanSegmentList[column].inconsistent, self. scanSegmentList[column]._spanText is not None)], (QtCore.Qt.BackgroundColorRole, 4): lambda self, column: self.backgroundLookup[ (self.scanSegmentList[column].inconsistent, self. scanSegmentList[column]._stepsText is not None)], (QtCore.Qt.BackgroundColorRole, 5): lambda self, column: self.backgroundLookup[ (self.scanSegmentList[column].inconsistent, self. scanSegmentList[column]._stepsizeText is not None)], (QtCore.Qt.ToolTipRole, 0): lambda self, column: self.scanSegmentList[column]._startText if self.scanSegmentList[column]._startText is not None else None, (QtCore.Qt.ToolTipRole, 1): lambda self, column: self.scanSegmentList[column]._stopText if self.scanSegmentList[column]._stopText is not None else None, (QtCore.Qt.ToolTipRole, 2): lambda self, column: self.scanSegmentList[column]._centerText if self.scanSegmentList[column]._centerText is not None else None, (QtCore.Qt.ToolTipRole, 3): lambda self, column: self.scanSegmentList[column]._spanText if self.scanSegmentList[column]._spanText is not None else None, (QtCore.Qt.ToolTipRole, 4): lambda self, column: self.scanSegmentList[column]._stepsText if self.scanSegmentList[column]._stepsText is not None else None, (QtCore.Qt.ToolTipRole, 5): lambda self, column: self.scanSegmentList[column]._stepsizeText if self.scanSegmentList[column]._stepsizeText is not None else None, (QtCore.Qt.FontRole, 4): lambda self, column: self.fontLookup[self.scanSegmentList[column]. _stepPreference == 'steps'], (QtCore.Qt.FontRole, 5): lambda self, column: self.fontLookup[self.scanSegmentList[column]. _stepPreference == 'stepsize'] } self.globalDict = globalVariables defaultBG = QtGui.QColor(QtCore.Qt.white) inconsistentBG = QtGui.QColor(0xff, 0xa6, 0xa6, 0xff) textBG = QtGui.QColor(QtCore.Qt.green).lighter(175) preferenceFont = QtGui.QFont("MS Shell Dlg 2", -1, QtGui.QFont.DemiBold, False) regularFont = QtGui.QFont("MS Shell Dlg 2", -1, QtGui.QFont.Normal, False) self.fontLookup = {True: preferenceFont, False: regularFont} self.backgroundLookup = { (True, True): inconsistentBG, (True, False): inconsistentBG, (False, True): textBG, (False, False): defaultBG }
def setEvaluationLabel(self, scanName): self.evaluationLabel.setText(firstNotNone(scanName, ""))
def onCurrentPositionEvent(self, event): self.adjust.line = event.line self.currentLineDisplay.setText(str(self.adjust.line)) self.currentPositionLabel.setText( firstNotNone(event.text, "") ) self.updateOutput.emit(self.adjust, False)
def setPosition(self, line): if self.currentPosition!=line: self.currentPosition = line self.currentPositionName = self.position(line) self.currentPositionObservable.fire( line=line, text=firstNotNone(self.currentPositionName, "") )
def shuttlingDefinitionPath(self, definitionpath=None): path = firstNotNone(definitionpath, self.files.definitionFile) filedir, filename = os.path.split(path) basename, _ = os.path.splitext(filename) return os.path.join(filedir, basename + "_shuttling.xml")
def addTraceui(self, scan, traceui ): self.traceuiLookup[scan] = traceui self.plotWindowIndex = dict( (("{0}.{1}".format(key, item), (ui, item, d["view"])) for key, ui in self.traceuiLookup.items() for item, d in ui.graphicsViewDict.items()) ) updateComboBoxItems( self.windowComboBox, sorted(self.plotWindowIndex.keys()), self.settings.plotWindow ) self.settings.plotWindow = firstNotNone( self.settings.plotWindow, str(self.windowComboBox.currentText()) )
def onCurrentPositionEvent(self, event): self.adjust.line = event.line self.currentLineDisplay.setText(str(self.adjust.line)) self.currentPositionLabel.setText(firstNotNone(event.text, "")) self.updateOutput.emit(self.adjust, False)
def setScanLabel(self, scanName): self.scanLabel.setText( firstNotNone(scanName, "") )
def __init__(self, config, globalDict=None, parent=None): Base.__init__(self, parent) Form.__init__(self) self.globalDict = firstNotNone(globalDict, dict()) self.config = config self.configName = 'ControlUi'
def __init__(self, config, parent=None, *args): QtCore.QAbstractTableModel.__init__(self, parent, *args) self.config = config self.dataLookup = { (QtCore.Qt.CheckStateRole, 0): lambda row: QtCore.Qt.Checked if self.fitfunction.parameterEnabled[row] else QtCore.Qt.Unchecked, (QtCore.Qt.DisplayRole, 1): lambda row: self.fitfunction.parameterNames[row], (QtCore.Qt.DisplayRole, 2): lambda row: str(self.fitfunction.startParameters[row]), (QtCore.Qt.DisplayRole, 3): lambda row: mystr(self.fitfunction.parameterBounds[row][0]), (QtCore.Qt.DisplayRole, 4): lambda row: mystr(self.fitfunction.parameterBounds[row][1]), (QtCore.Qt.EditRole, 2): lambda row: firstNotNone( self.fitfunction.startParameterExpressions[row], str(self.fitfunction.startParameters[row])), (QtCore.Qt.UserRole, 2): lambda row: self.fitfunction.units[row] if self.fitfunction.units else None, (QtCore.Qt.EditRole, 3): lambda row: firstNotNone( self.fitfunction.parameterBoundsExpressions[row][0], self. fitfunction.parameterBounds[row][0], ""), (QtCore.Qt.UserRole, 3): lambda row: self.fitfunction.units[row] if self.fitfunction.units else None, (QtCore.Qt.EditRole, 4): lambda row: firstNotNone( self.fitfunction.parameterBoundsExpressions[row][1], self. fitfunction.parameterBounds[row][1], ""), (QtCore.Qt.UserRole, 4): lambda row: self.fitfunction.units[row] if self.fitfunction.units else None, (QtCore.Qt.DisplayRole, 5): self.fitValue, (QtCore.Qt.DisplayRole, 6): self.confidenceValue, (QtCore.Qt.DisplayRole, 7): self.relConfidenceValue, (QtCore.Qt.ToolTipRole, 2): lambda row: self.fitfunction.startParameterExpressions[row] if self .fitfunction.startParameterExpressions[row] is not None else None, (QtCore.Qt.BackgroundRole, 2): lambda row: self.backgroundLookup[ self.fitfunction.startParameterExpressions[row] is not None], (QtCore.Qt.BackgroundRole, 3): lambda row: self.backgroundLookup[self.fitfunction. parameterBoundsExpressions[row][ 0] is not None], (QtCore.Qt.BackgroundRole, 4): lambda row: self.backgroundLookup[ self.fitfunction.parameterBoundsExpressions[row][1 ] is not None] } self.setDataLookup = { (QtCore.Qt.CheckStateRole, 0): self.setParametersEnabled, (QtCore.Qt.EditRole, 2): self.setStartParameters, (QtCore.Qt.UserRole, 2): self.setStartParameterExpression, (QtCore.Qt.EditRole, 3): partial(self.setParametersBound, 0), (QtCore.Qt.UserRole, 3): partial(self.setParametersBoundsExpression, 0), (QtCore.Qt.EditRole, 4): partial(self.setParametersBound, 1), (QtCore.Qt.UserRole, 4): partial(self.setParametersBoundsExpression, 1) } self.fitfunction = None
def shuttlingDefinitionPath(self, definitionpath=None ): path = firstNotNone( definitionpath, self.files.definitionFile ) filedir, filename = os.path.split(path) basename, _ = os.path.splitext(filename) return os.path.join( filedir, basename+"_shuttling.xml" )
def updateStyleSheet(self, hasFocus=None): hasFocus = firstNotNone(hasFocus, self.hasFocus()) self.setStyleSheet( "ExpressionSpinBox { background-color: #bfffbf; }" ) if self.expressionValue.hasDependency and not hasFocus else self.setStyleSheet( "")
def setAnalysisLabel(self, scanName): self.analysisLabel.setText(firstNotNone(scanName, ""))
def setAnalysisLabel(self, scanName): self.analysisLabel.setText(firstNotNone(scanName, ""))
def setScanLabel(self, scanName): self.scanLabel.setText(firstNotNone(scanName, ""))
def setEvaluationLabel(self, scanName): self.evaluationLabel.setText(firstNotNone(scanName, ""))
def __init__(self, config, globalDict=None, parent=None): Base.__init__(self, parent) Form.__init__(self) self.globalDict = firstNotNone( globalDict, dict() ) self.config = config self.configName = 'ControlUi'
def data(self, index, role): if index.isValid(): if role == QtCore.Qt.DisplayRole: printer = firstNotNone( self.printers[index.column()], str ) return printer(self.data[index.row()][index.column()]) return None
def updateStyleSheet(self, hasFocus=None): hasFocus = firstNotNone(hasFocus, self.hasFocus()) self.setStyleSheet("ExpressionSpinBox { background-color: #bfffbf; }") if self.expressionValue.hasDependency and not hasFocus else self.setStyleSheet("")
def onActiveInstrumentChanged(self, modelIndex, modelIndex2 ): measurement = self.container.measurements[modelIndex.row()] self.parameterModel.setParameters( measurement.parameters ) self.resultModel.setResults( measurement.results ) self.plainTextEdit.setPlainText( firstNotNone( measurement.longComment, "" ) ) self.currentMeasurement = measurement