def _init_ui(self): self.setWindowTitle('Spectrometers') self.controls_layout = QtWidgets.QHBoxLayout() controls_group = QtWidgets.QGroupBox() controls_group.setTitle('Spectrometers') controls_group.setLayout(self.controls_layout) self.controls = [] for spectrometer in self.spectrometers.spectrometers: control = spectrometer.get_qt_ui(control_only=True) self.controls_layout.addWidget(control) self.controls.append(control) self.display = SpectrometerDisplayUI(self.spectrometers) layout = QtWidgets.QVBoxLayout() layout.addWidget(controls_group) layout.addWidget(self.display) self.setLayout(layout)
def __init__(self, spectrometer, ui_file=os.path.join(os.path.dirname(__file__), 'spectrometer_view.ui'), parent=None): assert isinstance(spectrometer, Spectrometer) or isinstance(spectrometer, Spectrometers),\ "instrument must be a Spectrometer or an instance of Spectrometers" super(SpectrometerDisplayUI, self).__init__() uic.loadUi(ui_file, self) if isinstance(spectrometer, Spectrometers) and spectrometer.num_spectrometers == 1: spectrometer = spectrometer.spectrometers[0] if isinstance(spectrometer, Spectrometer): spectrometer.num_spectrometers = 1 self.spectrometer = spectrometer print(self.spectrometer) pg.setConfigOption('background', 'w') pg.setConfigOption('foreground', 'k') self.plotbox = QtWidgets.QGroupBox() self.plotbox.setLayout(QtWidgets.QGridLayout()) self.plotlayout = self.plotbox.layout() self.plots = [] for spectrometer_nom in range(self.spectrometer.num_spectrometers): self.plots.append( pg.PlotWidget(labels={'bottom': 'Wavelength (nm)'})) self.plotlayout.addWidget(self.plots[spectrometer_nom]) self.figure_widget = self.replace_widget(self.display_layout, self.figure_widget, self.plotbox) self.take_spectrum_button.clicked.connect(self.button_pressed) self.live_button.clicked.connect(self.button_pressed) self.save_button.clicked.connect(self.button_pressed) self.threshold.setValidator(QtGui.QDoubleValidator()) self.threshold.textChanged.connect(self.check_state) self._display_thread = DisplayThread(self) self._display_thread.spectrum_ready.connect(self.update_display) self._display_thread.spectra_ready.connect(self.update_display) self.period = 0.2 self.filename_lineEdit.textChanged.connect(self.filename_changed_ui) register_for_property_changes(self.spectrometer, 'filename', self.filename_changed)