183 def __init__(self, device: microscope.abc.Camera, *args, **kwargs) -> None:
184 super().__init__(*args, **kwargs)
185 self._device = device
186 self._imager = _Imager(self._device)
187 self._imager.imageAcquired.connect(self.displayData)
188
189 self._view = QtWidgets.QLabel(parent=self)
190 self.displayData(
191 numpy.zeros(self._device.get_sensor_shape(), dtype=numpy.uint8)
192 )
193
194 self._enable_check = QtWidgets.QCheckBox("Enabled", parent=self)
195 self._enable_check.stateChanged.connect(self.updateEnableState)
196
197 self._exposure_box = QtWidgets.QDoubleSpinBox(parent=self)
198 self._exposure_box.setSuffix(" sec")
199 self._exposure_box.setSingleStep(0.1)
200 self._exposure_box.valueChanged.connect(self._device.set_exposure_time)
201
202 self._snap_button = QtWidgets.QPushButton("Snap", parent=self)
203 self._snap_button.clicked.connect(self._imager.snap)
204
205 self.updateEnableState()
206
207 layout = QtWidgets.QVBoxLayout()
208 controls_row = QtWidgets.QHBoxLayout()
209 for widget in [
210 self._enable_check,
211 self._exposure_box,
212 self._snap_button,
213 ]:
214 controls_row.addWidget(widget)
215 layout.addLayout(controls_row)
216 layout.addWidget(self._view)
217 self.setLayout(layout)
218