def __init__(self, counter): super(CounterPreviewWidget, self).__init__() # self.plot_item = pg.pl self.plot_widget = pg.PlotWidget(labels={'bottom': 'Time'}) self.plot = self.plot_widget.getPlotItem() self.setLayout(QtWidgets.QGridLayout()) self.layout().addWidget(self.plot_widget) self.counter = counter # We want to make sure we always update the data in the GUI thread. # This is done using the signal/slot mechanism self.update_data_signal.connect(self.update_widget, type=QtCore.Qt.QueuedConnection)
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)