예제 #1
0
파일: _gui_tmp.py 프로젝트: BD75/mpsrad
    def __init__(self, parent):
        QSplitter.__init__(self, parent)
        self.parent = parent
        self.setContentsMargins(10, 10, 10, 10)
        self.setOrientation(Qt.Vertical)

        #		# Spectrometers in tabs
        self.tabs = SpectrometerTabs(self, ['AFFTS'])

        # Toolbar
        self.toolbar = ToolBar(parent.Icons)
        self.toolbar.setOrientation(Qt.Vertical)

        # Control panel (housekeeping)
        self.controlpanel = ControlPanel(self)

        # Status bar
        self.statusbar = QStatusBar()
        self.ActionIcon = QLabel(u"")
        self.ActionInfo = QLabel(u"")
        self.statusbar.addPermanentWidget(self.ActionIcon)
        self.statusbar.addPermanentWidget(self.ActionInfo, 1)
        self.addWidget(self.tabs)

        Hsplit = QSplitter()
        Hsplit.setOrientation(Qt.Horizontal)
        Hsplit.addWidget(self.toolbar)
        Hsplit.addWidget(self.controlpanel)
        self.addWidget(Hsplit)

        self.addWidget(self.statusbar)

        self.setSizes([2000, 1, 1, 1])
예제 #2
0
    def __init__(self, parent, toolbar):
        QSplitter.__init__(self, parent)
        # QTabWidget.__init__(self, parent)
        self.setContentsMargins(10, 10, 10, 10)
        self.setOrientation(Qt.Vertical)

        linelistwithproperties = LineListWithProperties(self)
        # self.addWidget(linelistwithproperties)
        self.lineList = linelistwithproperties.lineList
        self.connect(self.lineList, SIGNAL("currentRowChanged(int)"),
                     self.current_item_changed)
        self.connect(self.lineList, SIGNAL("itemSelectionChanged()"),
                     self.selection_changed)
        self.curveProperties = linelistwithproperties.properties
        self.connect(self.curveProperties, SIGNAL("apply_button_clicked()"),
                     self.curve_properties_changed)
        
        self.curvewidget = CurveWidget(self)
        self.curvewidget.register_all_curve_tools()
        self.curve_item = make.curve([], [], color='b')
        self.peak_item = make.curve([],[], markerfacecolor = 'r', marker = 'o', curvestyle="NoCurve")#, alpha = 0.75)
        self.curvewidget.plot.add_item(self.curve_item)
        self.curvewidget.plot.add_item(self.peak_item)
        self.curvewidget.plot.set_antialiasing(True)
        self.addWidget(self.curvewidget)
        
        self.lines = [] # List of ImageParam instances
        self.peaks = []

        
        vSplitter = QSplitter()
        vSplitter.setOrientation(Qt.Vertical)
        daqParamProperties = DAQParamsProperties(self)
        self.daqProperties = daqParamProperties.properties
        self.connect(self.daqProperties, SIGNAL("apply_button_clicked()"), self.daq_properties_changed)
        # daqButton = QPushButton("Upload DAQ Params")
        vSplitter.addWidget(daqParamProperties)
        # vSplitter.addWidget(daqButton)
        tabWidget = QTabWidget()
        tab1 = tabWidget.addTab(linelistwithproperties, "Curve Params")
        tab2 = tabWidget.addTab(vSplitter, "DAQ Params")
        
        self.addWidget(tabWidget)

        self.setStretchFactor(0, 0)
        self.setStretchFactor(1, 1)
        self.setHandleWidth(10)
        self.setSizes([1, 2])
예제 #3
0
    def setupMainWidget(self) :
        self.main_dock = QDockWidget(_(''))
        self.addDockWidget(Qt.BottomDockWidgetArea, self.main_dock)
        self.dockTab = QTabWidget()
        dockSplitter = QSplitter()
        dockSplitter.setOrientation(Qt.Vertical)
        #-----
        toolbar = self.addToolBar("Curve")
        self.plotWidget = CentralWidget(self, toolbar)        # Set central widget:
        self.dockTab.addTab(self.plotWidget, "Plot")
        #-----
        self.statusEdit = QTextEdit()
        self.statusEdit.setText("Status updates to go here.")
        self.statusEdit.setEnabled(False)
        self.statusEdit.moveCursor(QTextCursor.End)
        #-----
        self.testButton = QPushButton("Test Button")
        self.testButton.clicked.connect(self.__testClick__)
        dockSplitter.addWidget(self.testButton)
        dockSplitter.addWidget(self.statusEdit)
        self.dockTab.addTab(dockSplitter, "Status Info")

        if DockableConsole is None:
            self.console = None
        else:
            import time, scipy.signal as sps, scipy.ndimage as spi
            import sys, os
            import numpy as np
            ns = {'np': np, 'sps': sps, 'spi': spi,
                  'os': os, 'sys': sys, 'time': time}
            msg = "Example: np.arange(20)\n"\
                  "Modules imported at startup: "\
                  "os, sys, os.path as osp, time, "\
                  "numpy as np, scipy.signal as sps, scipy.ndimage as spi"
            self.console = DockableConsole(self, namespace=ns, message=msg)
            # console_dock = QDockWidget(_('Console'))
            # self.addDockWidget(Qt.BottomDockWidgetArea, console_dock)
            # console_dock.setWidget(self.console)
            self.dockTab.addTab(self.console, "Console")
            # dockSplitter.addWidget(self.console)


        # main_dock.setWidget(dockSplitter)
        self.main_dock.setWidget(self.dockTab)
예제 #4
0
파일: gui.py 프로젝트: YannGmt/mpsrad
    def __init__(self, parent):
        QSplitter.__init__(self, parent)
        self.parent = parent
        self.setContentsMargins(10, 10, 10, 10)
        self.setOrientation(Qt.Vertical)

        # Toolbar
        toolbar = ToolBar(parent.getIcon, parent.measureInitToggle,
                          parent.measureStartStop)
        toolbar.setOrientation(Qt.Vertical)

        # Spectrometers in tabs
        self.tabs = SpectrometerTabs(self,
                                     autoX=toolbar.getX,
                                     autoY=toolbar.getY)

        # Control panel (housekeeping + control)
        controlpanel = QSplitter()
        self.Controlvalues = Controlwidget()
        self.HKvalues = HKwidget()
        controlpanel.addWidget(self.Controlvalues)
        controlpanel.addWidget(self.HKvalues)
        controlpanel.setSizes([2000, 1])

        self.sBar = StatusBar(parent.getIcon)

        self.addWidget(self.tabs)

        Hsplit = QSplitter()
        Hsplit.setOrientation(Qt.Horizontal)
        Hsplit.addWidget(toolbar)
        Hsplit.addWidget(controlpanel)
        self.addWidget(Hsplit)

        self.addWidget(self.sBar)

        self.setSizes([2000, 1, 1, 1])
예제 #5
0
    def __init__(self, parent):
        QSplitter.__init__(self, parent)

        self.name = 'subject'
        self.age = 26
        self.peakL = 559
        self.peakM = 530
        self.ref_LED = 10
        self.LED1 = 15
        self.LED2 = 13.9
        self.LED3 = 40.45
        self.L_OD = 0.35
        self.M_OD = 0.22

        self.setContentsMargins(10, 10, 10, 10)
        self.setOrientation(Qt.Vertical)
        
        line1 = QSplitter()
        line1.setOrientation(Qt.Horizontal)
        line2 = QSplitter()
        line2.setOrientation(Qt.Horizontal)
        line3 = QSplitter()
        line3.setOrientation(Qt.Horizontal)
        line4 = QSplitter()
        line4.setOrientation(Qt.Horizontal)
        line5 = QSplitter()
        line5.setOrientation(Qt.Horizontal)
        line6 = QSplitter()
        line6.setOrientation(Qt.Horizontal)
        line7 = QSplitter()
        line7.setOrientation(Qt.Horizontal)
        line8 = QSplitter()
        line8.setOrientation(Qt.Horizontal)

        self.txt1 = QLineEdit(str(self.name))
        self.txt1.setMaximumWidth(100)
        self.txt2 = QLineEdit(str(self.age))
        self.txt2.setMaximumWidth(100)
        self.txt3 = QLineEdit(str(self.peakL))
        self.txt3.setMaximumWidth(100)
        self.txt4 = QLineEdit(str(self.peakM))
        self.txt4.setMaximumWidth(100)
        self.txt5 = QLineEdit(str(self.ref_LED))
        self.txt5.setMaximumWidth(100)
        self.txt6 = QLineEdit()
        self.txt6.setMaximumWidth(100)
        self.txt7 = QLineEdit()
        self.txt7.setMaximumWidth(100)
        self.txt8 = QLineEdit()
        self.txt8.setMaximumWidth(100)

        label1 = QLabel('ID')
        label2 = QLabel('age')
        label3 = QLabel('peak L')
        label4 = QLabel('peak M')
        label5 = QLabel('ref LED')
        label6 = QLabel('LED1')
        label7 = QLabel('LED2')
        label8 = QLabel('LED3')

        line1.addWidget(label1)
        line2.addWidget(label2)
        line3.addWidget(label3)
        line4.addWidget(label4)
        line5.addWidget(label5)
        line6.addWidget(label6)
        line7.addWidget(label7)
        line8.addWidget(label8)

        line1.addWidget(self.txt1)
        line2.addWidget(self.txt2)
        line3.addWidget(self.txt3)
        line4.addWidget(self.txt4)
        line5.addWidget(self.txt5)
        line6.addWidget(self.txt6)
        line7.addWidget(self.txt7)
        line8.addWidget(self.txt8)

        self.load_button = QPushButton('load data')
        self.load_button.clicked.connect(self.load) 

        self.analyze_button = QPushButton('analyze')
        self.analyze_button.clicked.connect(self.analyze) 

        # add left side of the bottom panel
        left_side = QSplitter()
        left_side.setOrientation(Qt.Vertical)
        left_side.addWidget(self.load_button)
        left_side.addWidget(line1)
        left_side.addWidget(line2)
        left_side.addWidget(line3)
        left_side.addWidget(line4)
        left_side.addWidget(line5)
        left_side.addWidget(line6)
        left_side.addWidget(line7)
        left_side.addWidget(line8)
        left_side.addWidget(self.analyze_button)


        # set up right side of the bottom panel
        self.results = QListWidget(self)
        self.save_button = QPushButton('save', self.results)
        self.save_button.clicked.connect(self.save)  

        # add right side of the bottom panel
        right_side = QSplitter()
        right_side.setOrientation(Qt.Vertical)
        right_side.addWidget(self.results)
        right_side.addWidget(self.save_button)
        self.addWidget(right_side) 

        # add left and right side to bottom
        bottom = QSplitter()
        bottom.addWidget(left_side)
        bottom.addWidget(right_side)

        self.plots = CurveWidget(self, 
            xlabel='wavelength (nm)', ylabel='sensitivity')

        self.addWidget(self.plots)
        self.addWidget(bottom)

        self.show_data(PRINT=False)    

        self.setStretchFactor(0, 0)
        self.setStretchFactor(1, 1)
        self.setHandleWidth(10)
        self.setSizes([800, 1])

        self.parse_rc_file()
예제 #6
0
    def __init__(self,
                 parent,
                 axisLimits=None,
                 plots=[[{
                     'name': 'P1',
                     'curves': ['C1', 'C2']
                 }]]):
        QSplitter.__init__(self, parent)
        self.parent = parent

        self.plots = [p for c in plots for r in c for p in r['curves']]
        self.active = None
        self.axisLimits = axisLimits

        self.xylim = XYlim()
        Filter = FilterWidget()

        # Curve panels (plots)
        Hsplit = QSplitter(self)
        self.curves = None
        self.panels = []

        for columns in plots:
            column = QSplitter(self)
            column.setOrientation(Qt.Vertical)
            column.setChildrenCollapsible(False)

            for rows in columns:
                panel = cPlot(column,
                              title=rows['name'],
                              xlabel="\u0394f [MHz]",
                              ylabel="Count",
                              updateWidgets=self.xylim.updateWidgets)
                panel.name = rows['name']
                panel.setDefaultAxis(self.axisLimits)
                panel.curves = {
                    p: cItem(filterfun=Filter.filterfun)
                    for p in rows['curves']
                }

                if self.curves is None: self.curves = panel.curves
                else: self.curves.update(panel.curves)

                for n in panel.curves:
                    p = panel.curves[n]
                    p.title().setText(n)
                    p.set_data([0], [0])
                    p.setPen(QPen(Qt.black, 1))
                    p.parent = panel
                    panel.add_item(p)

                column.addWidget(panel)
                self.panels.append(panel)

            Hsplit.addWidget(column)

        self.addWidget(Hsplit)

        Hsplit = QSplitter(self)
        Hsplit.addWidget(self.xylim)
        Hsplit.addWidget(Filter)
        self.addWidget(Hsplit)
        self.setOrientation(Qt.Vertical)
예제 #7
0
    def __init__(self,
                 parent,
                 spec=None,
                 axisLimits=[0, 40, 0, 400],
                 plots=[[{
                     'name': 'Raw spectra',
                     'curves': ['Cold', 'Hot', 'Antenna']
                 }, {
                     'name': 'System noise',
                     'curves': ['Noise']
                 }],
                        [{
                            'name': 'Calibrated',
                            'curves': ['Calibrated']
                        }, {
                            'name': 'Integrated',
                            'curves': ['Integrated']
                        }]]):
        QSplitter.__init__(self, parent)
        self.parent = parent
        self.spec = spec
        self.name = self.spec.name if self.spec else 'Spectrometer'

        self.plots = [p for c in plots for r in c for p in r['curves']]

        self.Pc = self.Ph = self.Pa = self.Ta = self.Ti = self.Tr = None
        self._mean = {'count': 0, 'mean': 0}
        self.chopper_pos = None

        self.active = None
        self.axisLimits = axisLimits

        self.xylim = XYlim()

        Filter = FilterWidget()

        # Curve panels (plots)
        Hsplit = QSplitter(self)
        self.curves = None
        self.panels = []

        for columns in plots:
            column = QSplitter(self)
            column.setOrientation(Qt.Vertical)
            column.setChildrenCollapsible(False)

            for rows in columns:
                panel = cPlot(column,
                              title=rows['name'],
                              xlabel="\u0394f [MHz]",
                              ylabel="Count",
                              updateWidgets=self.xylim.updateWidgets)
                panel.name = rows['name']
                panel.setDefaultAxis(self.axisLimits)
                panel.curves = {
                    p: cItem(filterfun=Filter.filterfun)
                    for p in rows['curves']
                }

                if self.curves is None: self.curves = panel.curves
                else: self.curves.update(panel.curves)

                for n in panel.curves:
                    p = panel.curves[n]
                    p.title().setText(n)
                    p.set_data([0], [0])
                    p.setPen(QPen(Qt.black, 1))
                    p.parent = panel
                    panel.add_item(p)

                column.addWidget(panel)
                self.panels.append(panel)

            Hsplit.addWidget(column)

        self.addWidget(Hsplit)

        Hsplit = QSplitter(self)
        Hsplit.addWidget(self.xylim)
        Hsplit.addWidget(Filter)
        self.addWidget(Hsplit)
        self.setOrientation(Qt.Vertical)

        self.curves['Cold'].setPen(QPen(Qt.blue, 1))
        self.curves['Hot'].setPen(QPen(Qt.red, 1))

        self.curves['Calibrated'].parent.set_titles(ylabel=u'Temperature')
        self.curves['Integrated'].parent.set_titles(ylabel=u'Temperature')
        self.curves['Noise'].parent.set_titles(ylabel=u'Temperature')

        cPanel = self.curves['Cold'].parent
        cPanel.add_item(make.legend("BL"))
        cPanel.setActive()