Пример #1
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)
Пример #2
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()