348 ) -> None:
349 super().__init__(*args, **kwargs)
350 self._device = device
351
352 self._enable_check = QtWidgets.QCheckBox("Enabled", parent=self)
353 self._enable_check.stateChanged.connect(self.updateEnableState)
354
355 self._set_power_box = QtWidgets.QDoubleSpinBox(parent=self)
356 self._set_power_box.setMinimum(0.0)
357 self._set_power_box.setMaximum(1.0)
358 self._set_power_box.setValue(self._device.power)
359 self._set_power_box.setSingleStep(0.01)
360 self._set_power_box.setAlignment(QtCore.Qt.AlignRight)
361 self._set_power_box.valueChanged.connect(
362 lambda x: setattr(self._device, "power", x)
363 )
364
365 self._current_power = QtWidgets.QLineEdit(
366 str(self._device.power), parent=self
367 )
368 self._current_power.setReadOnly(True)
369 self._current_power.setAlignment(QtCore.Qt.AlignRight)
370
371 self._get_power_timer = QtCore.QTimer(self)
372 self._get_power_timer.timeout.connect(self.updateCurrentPower)
373 self._get_power_timer.setInterval(500)
374
375 self.updateEnableState()
376
377 layout = QtWidgets.QVBoxLayout()
378 layout.addWidget(self._enable_check)
379 power_layout = QtWidgets.QFormLayout()
380 power_layout.addRow("Set power", self._set_power_box)
381 power_layout.addRow("Current power", self._current_power)
382 layout.addLayout(power_layout)
383 self.setLayout(layout)
384