def test_RectScanParameter(): p = RectScanParameter() p.system.defaultState['sampleRate'][0] = 1e4 p.system.defaultState['sampleRate'][2] = 'fixed' p.system.defaultState['downsample'][0] = 1 p.system.defaultState['downsample'][2] = 'fixed' p.system.defaultState['p0'][0] = np.array([0, 0]) p.system.defaultState['p0'][2] = 'fixed' p.system.defaultState['p1'][0] = np.array([150e-6, 0]) p.system.defaultState['p1'][2] = 'fixed' p.system.defaultState['p2'][0] = np.array([0, -100e-6]) p.system.defaultState['p2'][2] = 'fixed' p.system.defaultState['numFrames'][0] = 1 p.updateSystem() w = ParameterTree() w.setParameters(p) w.show() return p, w
def __init__(self, *args): AnalysisModule.__init__(self, *args) self.layout = Qt.QGridLayout() self.setLayout(self.layout) self.splitter = Qt.QSplitter() self.layout.addWidget(self.splitter) self.ptree = ParameterTree() self.splitter.addWidget(self.ptree) self.imageView = pg.ImageView() self.splitter.addWidget(self.imageView) self.params = Parameter(name='imager', children=[ dict(name='scanner', type='interface', interfaceTypes=['scanner']), dict(name='detectors', type='group', addText="Add detector.."), dict(name='decomb', type='float', readonly=False, value=20e-6, suffix='s', siPrefix=True, bounds=[0, 1e-3], step=1e-6, decimals=5, children=[ dict(name='auto', type='action'), dict(name='subpixel', type='bool', value=False), ]), dict(name='downsample', type='int', value=1, suffix='x', bounds=[1,None]), dict(name='display', type='bool', value=True), dict(name='scanProgram', type='list', values=[]), dict(name='Objective', type='str', value='Unknown', readonly=True), dict(name='Filter', type='str', value='Unknown', readonly=True), ]) self.ptree.setParameters(self.params, showTop=False) self.params.sigTreeStateChanged.connect(self.update) self.params.child('detectors').sigAddNew.connect(self.addDetectorClicked) self.params.child('decomb', 'auto').sigActivated.connect(self.autoDecomb) self.man = getManager() self.scannerDev = self.man.getDevice(self.params['scanner']) # find first scope device that is parent of scanner dev = self.scannerDev while dev is not None and not isinstance(dev, Microscope): dev = dev.parentDevice() self.scopeDev = dev self.lastFrame = None # self.SUF = SUFA.ScannerUtilities() # self.ui.alphaSlider.valueChanged.connect(self.imageAlphaAdjust) self.img = pg.ImageItem() ## image shown in camera module self.img.setLookupTable(self.imageView.ui.histogram.getLookupTable) # image fetches LUT from the ImageView self.imageView.ui.histogram.sigLevelsChanged.connect(self._updateCamModImage) self.imageView.imageItem.setAutoDownsample(True)
def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(336, 439) Form.setMinimumSize(QtCore.QSize(0, 100)) self.verticalLayout_5 = QtGui.QVBoxLayout(Form) self.verticalLayout_5.setSpacing(0) self.verticalLayout_5.setMargin(0) self.verticalLayout_5.setObjectName(_fromUtf8("verticalLayout_5")) self.frame = QtGui.QFrame(Form) self.frame.setFrameShape(QtGui.QFrame.StyledPanel) self.frame.setFrameShadow(QtGui.QFrame.Raised) self.frame.setObjectName(_fromUtf8("frame")) self.verticalLayout_4 = QtGui.QVBoxLayout(self.frame) self.verticalLayout_4.setSpacing(0) self.verticalLayout_4.setMargin(0) self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4")) self.splitter = QtGui.QSplitter(self.frame) self.splitter.setOrientation(QtCore.Qt.Vertical) self.splitter.setChildrenCollapsible(False) self.splitter.setObjectName(_fromUtf8("splitter")) self.stack = QtGui.QStackedWidget(self.splitter) self.stack.setObjectName(_fromUtf8("stack")) self.page = QtGui.QWidget() self.page.setObjectName(_fromUtf8("page")) self.verticalLayout_3 = QtGui.QVBoxLayout(self.page) self.verticalLayout_3.setSpacing(0) self.verticalLayout_3.setMargin(0) self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) self.stimulusTree = ParameterTree(self.page) self.stimulusTree.setHeaderHidden(True) self.stimulusTree.setObjectName(_fromUtf8("stimulusTree")) self.stimulusTree.headerItem().setText(0, _fromUtf8("1")) self.verticalLayout_3.addWidget(self.stimulusTree) self.stack.addWidget(self.page) self.page_3 = QtGui.QWidget() self.page_3.setObjectName(_fromUtf8("page_3")) self.gridLayout = QtGui.QGridLayout(self.page_3) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) spacerItem = QtGui.QSpacerItem(20, 76, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem, 0, 1, 1, 1) self.label = QtGui.QLabel(self.page_3) self.label.setTextFormat(QtCore.Qt.AutoText) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setWordWrap(True) self.label.setObjectName(_fromUtf8("label")) self.gridLayout.addWidget(self.label, 1, 0, 1, 3) spacerItem1 = QtGui.QSpacerItem(93, 78, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem1, 2, 0, 2, 1) self.forceAdvancedBtn = QtGui.QPushButton(self.page_3) self.forceAdvancedBtn.setObjectName(_fromUtf8("forceAdvancedBtn")) self.gridLayout.addWidget(self.forceAdvancedBtn, 2, 1, 1, 1) spacerItem2 = QtGui.QSpacerItem(92, 78, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem2, 2, 2, 2, 1) self.forceSimpleBtn = QtGui.QPushButton(self.page_3) self.forceSimpleBtn.setObjectName(_fromUtf8("forceSimpleBtn")) self.gridLayout.addWidget(self.forceSimpleBtn, 3, 1, 1, 1) spacerItem3 = QtGui.QSpacerItem(20, 75, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem3, 4, 1, 1, 1) self.stack.addWidget(self.page_3) self.page_4 = QtGui.QWidget() self.page_4.setObjectName(_fromUtf8("page_4")) self.verticalLayout = QtGui.QVBoxLayout(self.page_4) self.verticalLayout.setSpacing(0) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.splitter_2 = QtGui.QSplitter(self.page_4) self.splitter_2.setOrientation(QtCore.Qt.Vertical) self.splitter_2.setChildrenCollapsible(False) self.splitter_2.setObjectName(_fromUtf8("splitter_2")) self.functionText = QtGui.QTextEdit(self.splitter_2) self.functionText.setMinimumSize(QtCore.QSize(0, 15)) self.functionText.setObjectName(_fromUtf8("functionText")) self.seqTree = ParameterTree(self.splitter_2) self.seqTree.setObjectName(_fromUtf8("seqTree")) self.seqTree.headerItem().setText(0, _fromUtf8("1")) self.seqTree.header().setVisible(False) self.verticalLayout.addWidget(self.splitter_2) self.stack.addWidget(self.page_4) self.page_2 = QtGui.QWidget() self.page_2.setObjectName(_fromUtf8("page_2")) self.verticalLayout_2 = QtGui.QVBoxLayout(self.page_2) self.verticalLayout_2.setMargin(0) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.textBrowser = QtGui.QTextBrowser(self.page_2) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.verticalLayout_2.addWidget(self.textBrowser) self.stack.addWidget(self.page_2) self.errorText = QtGui.QTextBrowser(self.splitter) self.errorText.setMinimumSize(QtCore.QSize(0, 15)) self.errorText.setObjectName(_fromUtf8("errorText")) self.verticalLayout_4.addWidget(self.splitter) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setSpacing(0) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.advancedBtn = QtGui.QPushButton(self.frame) self.advancedBtn.setCheckable(True) self.advancedBtn.setObjectName(_fromUtf8("advancedBtn")) self.horizontalLayout.addWidget(self.advancedBtn) self.errorBtn = QtGui.QToolButton(self.frame) self.errorBtn.setEnabled(True) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.errorBtn.sizePolicy().hasHeightForWidth()) self.errorBtn.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setBold(True) font.setWeight(75) self.errorBtn.setFont(font) self.errorBtn.setCheckable(True) self.errorBtn.setObjectName(_fromUtf8("errorBtn")) self.horizontalLayout.addWidget(self.errorBtn) self.helpBtn = QtGui.QToolButton(self.frame) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.helpBtn.sizePolicy().hasHeightForWidth()) self.helpBtn.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setBold(True) font.setWeight(75) self.helpBtn.setFont(font) self.helpBtn.setCheckable(True) self.helpBtn.setObjectName(_fromUtf8("helpBtn")) self.horizontalLayout.addWidget(self.helpBtn) spacerItem4 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem4) self.updateBtn = QtGui.QPushButton(self.frame) self.updateBtn.setObjectName(_fromUtf8("updateBtn")) self.horizontalLayout.addWidget(self.updateBtn) self.autoUpdateCheck = QtGui.QCheckBox(self.frame) self.autoUpdateCheck.setObjectName(_fromUtf8("autoUpdateCheck")) self.horizontalLayout.addWidget(self.autoUpdateCheck) self.verticalLayout_4.addLayout(self.horizontalLayout) self.verticalLayout_5.addWidget(self.frame) self.retranslateUi(Form) self.stack.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(Form)
def setupUi(self, Form): Form.setObjectName("Form") Form.resize(840, 504) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(4) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth()) Form.setSizePolicy(sizePolicy) self.gridLayout_4 = QtWidgets.QGridLayout(Form) self.gridLayout_4.setContentsMargins(3, 3, 3, 3) self.gridLayout_4.setHorizontalSpacing(9) self.gridLayout_4.setVerticalSpacing(2) self.gridLayout_4.setObjectName("gridLayout_4") self.gridLayout = QtWidgets.QGridLayout() self.gridLayout.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize) self.gridLayout.setObjectName("gridLayout") self.cameraCombo = InterfaceCombo(Form) self.cameraCombo.setObjectName("cameraCombo") self.gridLayout.addWidget(self.cameraCombo, 0, 1, 1, 1) self.loadConfigBtn = QtWidgets.QPushButton(Form) self.loadConfigBtn.setObjectName("loadConfigBtn") self.gridLayout.addWidget(self.loadConfigBtn, 6, 0, 1, 2) self.label = QtWidgets.QLabel(Form) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 0, 0, 1, 1) self.label_2 = QtWidgets.QLabel(Form) self.label_2.setObjectName("label_2") self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1) self.laserCombo = InterfaceCombo(Form) self.laserCombo.setObjectName("laserCombo") self.gridLayout.addWidget(self.laserCombo, 1, 1, 1, 1) self.simulateShutterCheck = QtWidgets.QCheckBox(Form) self.simulateShutterCheck.setObjectName("simulateShutterCheck") self.gridLayout.addWidget(self.simulateShutterCheck, 2, 0, 1, 2) self.enablePosCtrlCheck = QtWidgets.QCheckBox(Form) self.enablePosCtrlCheck.setChecked(True) self.enablePosCtrlCheck.setObjectName("enablePosCtrlCheck") self.gridLayout.addWidget(self.enablePosCtrlCheck, 3, 0, 1, 2) self.enableScanProgCheck = QtWidgets.QCheckBox(Form) self.enableScanProgCheck.setChecked(True) self.enableScanProgCheck.setObjectName("enableScanProgCheck") self.gridLayout.addWidget(self.enableScanProgCheck, 4, 0, 1, 2) spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem, 5, 0, 1, 1) self.gridLayout_4.addLayout(self.gridLayout, 0, 0, 2, 1) self.positionCtrlGroup = QtWidgets.QGroupBox(Form) self.positionCtrlGroup.setCheckable(False) self.positionCtrlGroup.setChecked(False) self.positionCtrlGroup.setObjectName("positionCtrlGroup") self.gridLayout_5 = QtWidgets.QGridLayout(self.positionCtrlGroup) self.gridLayout_5.setContentsMargins(5, 5, 5, 5) self.gridLayout_5.setObjectName("gridLayout_5") self.showPosCtrlCheck = QtWidgets.QCheckBox(self.positionCtrlGroup) self.showPosCtrlCheck.setEnabled(True) self.showPosCtrlCheck.setChecked(True) self.showPosCtrlCheck.setObjectName("showPosCtrlCheck") self.gridLayout_5.addWidget(self.showPosCtrlCheck, 1, 0, 1, 1) self.spotDisplayGroup = GroupBox(self.positionCtrlGroup) self.spotDisplayGroup.setObjectName("spotDisplayGroup") self.gridLayout_2 = QtWidgets.QGridLayout(self.spotDisplayGroup) self.gridLayout_2.setContentsMargins(3, 3, 3, 3) self.gridLayout_2.setSpacing(0) self.gridLayout_2.setObjectName("gridLayout_2") self.sizeFromCalibrationRadio = QtWidgets.QRadioButton(self.spotDisplayGroup) self.sizeFromCalibrationRadio.setChecked(True) self.sizeFromCalibrationRadio.setObjectName("sizeFromCalibrationRadio") self.gridLayout_2.addWidget(self.sizeFromCalibrationRadio, 0, 0, 1, 2) self.sizeCustomRadio = QtWidgets.QRadioButton(self.spotDisplayGroup) self.sizeCustomRadio.setObjectName("sizeCustomRadio") self.gridLayout_2.addWidget(self.sizeCustomRadio, 1, 0, 1, 1) self.sizeSpin = SpinBox(self.spotDisplayGroup) self.sizeSpin.setSuffix("") self.sizeSpin.setMinimum(0.0) self.sizeSpin.setMaximum(100000.0) self.sizeSpin.setSingleStep(1e-06) self.sizeSpin.setProperty("value", 0.0) self.sizeSpin.setObjectName("sizeSpin") self.gridLayout_2.addWidget(self.sizeSpin, 1, 1, 1, 1) self.showLastSpotCheck = QtWidgets.QCheckBox(self.spotDisplayGroup) self.showLastSpotCheck.setObjectName("showLastSpotCheck") self.gridLayout_2.addWidget(self.showLastSpotCheck, 2, 0, 1, 1) self.gridLayout_5.addWidget(self.spotDisplayGroup, 3, 0, 1, 1) self.spotSequenceGroup = GroupBox(self.positionCtrlGroup) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.spotSequenceGroup.sizePolicy().hasHeightForWidth()) self.spotSequenceGroup.setSizePolicy(sizePolicy) self.spotSequenceGroup.setObjectName("spotSequenceGroup") self.gridLayout_3 = QtWidgets.QGridLayout(self.spotSequenceGroup) self.gridLayout_3.setContentsMargins(3, 3, 3, 3) self.gridLayout_3.setSpacing(3) self.gridLayout_3.setObjectName("gridLayout_3") self.minTimeSpin = SpinBox(self.spotSequenceGroup) self.minTimeSpin.setSuffix("") self.minTimeSpin.setDecimals(2) self.minTimeSpin.setMaximum(1000000.0) self.minTimeSpin.setObjectName("minTimeSpin") self.gridLayout_3.addWidget(self.minTimeSpin, 1, 1, 1, 1) self.timeLabel = QtWidgets.QLabel(self.spotSequenceGroup) self.timeLabel.setObjectName("timeLabel") self.gridLayout_3.addWidget(self.timeLabel, 4, 0, 1, 2) self.minDistSpin = SpinBox(self.spotSequenceGroup) self.minDistSpin.setSuffix("") self.minDistSpin.setMaximum(1000000.0) self.minDistSpin.setObjectName("minDistSpin") self.gridLayout_3.addWidget(self.minDistSpin, 2, 1, 1, 1) self.label_3 = QtWidgets.QLabel(self.spotSequenceGroup) self.label_3.setObjectName("label_3") self.gridLayout_3.addWidget(self.label_3, 1, 0, 1, 1) self.recomputeBtn = QtWidgets.QPushButton(self.spotSequenceGroup) self.recomputeBtn.setObjectName("recomputeBtn") self.gridLayout_3.addWidget(self.recomputeBtn, 5, 0, 1, 2) self.label_4 = QtWidgets.QLabel(self.spotSequenceGroup) self.label_4.setObjectName("label_4") self.gridLayout_3.addWidget(self.label_4, 2, 0, 1, 1) self.tdPlotWidget = PlotWidget(self.spotSequenceGroup) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.tdPlotWidget.sizePolicy().hasHeightForWidth()) self.tdPlotWidget.setSizePolicy(sizePolicy) self.tdPlotWidget.setMinimumSize(Qt.QSize(0, 100)) self.tdPlotWidget.setMaximumSize(Qt.QSize(16777215, 100)) self.tdPlotWidget.setObjectName("tdPlotWidget") self.gridLayout_3.addWidget(self.tdPlotWidget, 0, 0, 1, 2) self.gridLayout_5.addWidget(self.spotSequenceGroup, 2, 0, 1, 1) self.itemTree = ParameterTree(self.positionCtrlGroup) self.itemTree.setObjectName("itemTree") self.itemTree.headerItem().setText(0, "1") self.itemTree.header().setVisible(False) self.gridLayout_5.addWidget(self.itemTree, 0, 0, 1, 1) self.gridLayout_4.addWidget(self.positionCtrlGroup, 0, 1, 2, 1) self.scanProgramGroup = QtWidgets.QGroupBox(Form) self.scanProgramGroup.setCheckable(False) self.scanProgramGroup.setChecked(False) self.scanProgramGroup.setObjectName("scanProgramGroup") self.gridLayout_6 = QtWidgets.QGridLayout(self.scanProgramGroup) self.gridLayout_6.setContentsMargins(5, 5, 5, 5) self.gridLayout_6.setObjectName("gridLayout_6") self.gridLayout_9 = QtWidgets.QGridLayout() self.gridLayout_9.setObjectName("gridLayout_9") self.previewBtn = QtWidgets.QPushButton(self.scanProgramGroup) self.previewBtn.setCheckable(True) self.previewBtn.setObjectName("previewBtn") self.gridLayout_9.addWidget(self.previewBtn, 1, 0, 1, 1) spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.gridLayout_9.addItem(spacerItem1, 1, 1, 1, 1) self.programPreviewSlider = QtWidgets.QSlider(self.scanProgramGroup) self.programPreviewSlider.setMaximum(999) self.programPreviewSlider.setProperty("value", 666) self.programPreviewSlider.setOrientation(Qt.Qt.Horizontal) self.programPreviewSlider.setTickPosition(QtWidgets.QSlider.TicksBelow) self.programPreviewSlider.setTickInterval(333) self.programPreviewSlider.setObjectName("programPreviewSlider") self.gridLayout_9.addWidget(self.programPreviewSlider, 1, 2, 1, 1) self.gridLayout_6.addLayout(self.gridLayout_9, 1, 0, 1, 1) self.scanProgramSplitter = QtWidgets.QSplitter(self.scanProgramGroup) self.scanProgramSplitter.setOrientation(Qt.Qt.Vertical) self.scanProgramSplitter.setObjectName("scanProgramSplitter") self.programTree = ParameterTree(self.scanProgramSplitter) self.programTree.setObjectName("programTree") self.programTree.headerItem().setText(0, "1") self.programTree.header().setVisible(False) self.programTimeline = PlotWidget(self.scanProgramSplitter) self.programTimeline.setObjectName("programTimeline") self.gridLayout_6.addWidget(self.scanProgramSplitter, 0, 0, 1, 1) self.gridLayout_4.addWidget(self.scanProgramGroup, 1, 2, 1, 1) self.retranslateUi(Form) Qt.QMetaObject.connectSlotsByName(Form)