예제 #1
0
 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)
예제 #2
0
    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)