def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) #self.timeScale = 1.0 #self.scale = 1.0 self.offset = 0.0 self.ui = Ui_Form() self.ui.setupUi(self) self.ui.functionText.setFontFamily('Courier') self.ui.errorText.setVisible(False) self.advancedMode = None ## if True, then the current state was generated in advanced ## mode. Otherwise, it was generated from the simple stim tree. self.lockMode = False ## used to temporarily block changes to self.advancedMode self.pSpace = None ## cached sequence parameter space self.cache = {} ## cached waveforms self.cacheRate = None self.cacheNPts = None self.meta = { ## holds some extra information about signals (units, expected scale and range, etc) ## mostly information useful in configuring SpinBoxes 'x': {}, 'y': {}, 'xy': {} ## values that are the product of x and y values } ## variables that are added into the function evaluation namespace. self.extraParams = {} ## Simple stim generator self.stimParams = StimParamSet() self.ui.stimulusTree.setParameters(self.stimParams, showTop=False) self.stimParams.sigTreeStateChanged.connect(self.stimParamsChanged) ## advanced stim generator self.seqParams = SequenceParamSet() self.ui.seqTree.setParameters(self.seqParams, showTop=False) self.setAdvancedMode(False) self.setError() self.updateWidgets() self.seqParams.sigTreeStateChanged.connect(self.seqParamsChanged) self.ui.functionText.textChanged.connect(self.funcChanged) self.ui.updateBtn.clicked.connect(self.update) self.ui.autoUpdateCheck.clicked.connect(self.autoUpdateClicked) self.ui.errorBtn.clicked.connect(self.updateWidgets) self.ui.helpBtn.clicked.connect(self.updateWidgets) self.ui.advancedBtn.toggled.connect(self.updateWidgets) self.ui.forceAdvancedBtn.clicked.connect(self.forceAdvancedClicked) self.ui.forceSimpleBtn.clicked.connect(self.forceSimpleClicked)