def __init__(self, **args): self.evalLocals = units.allUnits.copy() exec('from numpy import *', self.evalLocals) ## import all of numpy into the eval namespace args['renamable'] = True args['removable'] = True args['name'] = args.get('name', 'Param') args['autoIncrementName'] = True args['strictNaming'] = True args['children'] = [ {'name': 'default', 'type': 'str', 'value': '0'}, {'name': 'sequence', 'type': 'list', 'value': 'off', 'values': ['off', 'range', 'list', 'eval']}, {'name': 'start', 'type': 'str', 'value': '0', 'visible': False}, {'name': 'stop', 'type': 'str', 'value': '0', 'visible': False}, {'name': 'steps', 'type': 'int', 'value': 10, 'visible': False}, {'name': 'log spacing', 'type': 'bool', 'value': False, 'visible': False}, {'name': 'list', 'type': 'str', 'value': '', 'visible': False}, {'name': 'randomize', 'type': 'bool', 'value': False, 'visible': False}, {'name': 'expression', 'type': 'str', 'visible': False}, ] GroupParameter.__init__(self, **args) #self.sequence.sigValueChanged.connect(self.seqChanged) self.visibleParams = { ## list of params to display in each mode 'off': ['default', 'sequence'], 'range': ['default', 'sequence', 'start', 'stop', 'steps', 'log spacing', 'randomize'], 'list': ['default', 'sequence', 'list', 'randomize'], 'eval': ['default', 'sequence', 'expression'] }
def __init__(self): GroupParameter.__init__(self, name='Stimuli', type='group', addText='Add Stimulus..', addList=['Pulse', 'Pulse Train']) self.meta = {}
def __init__(self, **kargs): if 'name' not in kargs: kargs['name'] = 'Pulse' kargs['autoIncrementName'] = True if 'type' not in kargs: kargs['type'] = 'pulse' kargs['strictNaming'] = True GroupParameter.__init__( self, removable=True, renamable=True, children=[ SeqParameter(**{ 'name': 'start', 'type': 'float', 'axis': 'x', 'value': 0.01, }), SeqParameter(**{ 'name': 'length', 'type': 'float', 'axis': 'x', 'value': 0.01 }), SeqParameter(**{ 'name': 'amplitude', 'type': 'float', 'axis': 'y', 'value': 0 }), SeqParameter( **{ 'name': 'sum', 'type': 'float', 'axis': 'xy', 'value': 0, 'limits': (0, None), 'children': [{ 'name': 'affect', 'type': 'list', 'values': ['length', 'amplitude'], 'value': 'length' }] }), ], **kargs) self.param('length').sigValueChanged.connect(self.lenChanged) self.param('amplitude').sigValueChanged.connect(self.ampChanged) self.param('sum').sigValueChanged.connect(self.sumChanged)
def __init__(self, **kargs): if 'name' not in kargs: kargs['name'] = 'Pulse' kargs['autoIncrementName'] = True if 'type' not in kargs: kargs['type'] = 'pulse' kargs['strictNaming'] = True GroupParameter.__init__(self, removable=True, renamable=True, children=[ SeqParameter(**{'name': 'start', 'type': 'float', 'axis': 'x', 'value': 0.01,}), SeqParameter(**{'name': 'length', 'type': 'float', 'axis': 'x', 'value': 0.01}), SeqParameter(**{'name': 'amplitude', 'type': 'float', 'axis': 'y', 'value': 0}), SeqParameter(**{'name': 'sum', 'type': 'float', 'axis': 'xy', 'value': 0, 'limits': (0, None), 'children': [{'name': 'affect', 'type': 'list', 'values': ['length', 'amplitude'], 'value': 'length'}] }), ], **kargs) self.param('length').sigValueChanged.connect(self.lenChanged) self.param('amplitude').sigValueChanged.connect(self.ampChanged) self.param('sum').sigValueChanged.connect(self.sumChanged)
def treeStateChanged(self, param, changes): ## catch changes to 'sequence' so we can hide/show other params. ## Note: it would be easier to just catch self.sequence.sigValueChanged, ## but this approach allows us to block tree change events so they are all ## released as a single update. with self.treeChangeBlocker(): ## queue up change GroupParameter.treeStateChanged(self, param, changes) ## if needed, add some more changes before releasing the signal for param, change, data in changes: ## if the sequence value changes, hide/show other parameters if param is self.param('sequence') and change == 'value': vis = self.visibleParams[self['sequence']] for ch in self: if ch.name() in vis: ch.show() else: ch.hide()
def addChild(self, ch): GroupParameter.addChild(self, ch) for ax in self.meta: self.setMeta(ax, self.meta[ax], ch)
def __init__(self, **args): self.evalLocals = units.allUnits.copy() exec('from numpy import *', self.evalLocals) ## import all of numpy into the eval namespace args['renamable'] = True args['removable'] = True args['name'] = args.get('name', 'Param') args['autoIncrementName'] = True args['strictNaming'] = True args['children'] = [ { 'name': 'default', 'type': 'str', 'value': '0' }, { 'name': 'sequence', 'type': 'list', 'value': 'off', 'values': ['off', 'range', 'list', 'eval'] }, { 'name': 'start', 'type': 'str', 'value': '0', 'visible': False }, { 'name': 'stop', 'type': 'str', 'value': '0', 'visible': False }, { 'name': 'steps', 'type': 'int', 'value': 10, 'visible': False }, { 'name': 'log spacing', 'type': 'bool', 'value': False, 'visible': False }, { 'name': 'list', 'type': 'str', 'value': '', 'visible': False }, { 'name': 'randomize', 'type': 'bool', 'value': False, 'visible': False }, { 'name': 'expression', 'type': 'str', 'visible': False }, ] GroupParameter.__init__(self, **args) #self.sequence.sigValueChanged.connect(self.seqChanged) self.visibleParams = { ## list of params to display in each mode 'off': ['default', 'sequence'], 'range': [ 'default', 'sequence', 'start', 'stop', 'steps', 'log spacing', 'randomize' ], 'list': ['default', 'sequence', 'list', 'randomize'], 'eval': ['default', 'sequence', 'expression'] }
def __init__(self): GroupParameter.__init__(self, name='SequenceParams', type='group', addText='Add Sequence Parameter') self.meta = {}