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)
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()