diff --git a/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py b/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py index 449ae7e3..24e4b2c0 100644 --- a/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py +++ b/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py @@ -40,6 +40,7 @@ class DeviceUpdateUIComponents(TypedDict): stop: QPushButton tweak_increase: QPushButton tweak_decrease: QPushButton + units: QLabel class PositionerBoxBase(BECWidget, CompactPopupWidget): @@ -84,16 +85,33 @@ class PositionerBoxBase(BECWidget, CompactPopupWidget): limit_update: Callable[[tuple[float, float]], None], ): """Init the device view and readback""" - if self._check_device_is_valid(device): - data = self.dev[device].read() - self._on_device_readback( - device, - self._device_ui_components(device), - {"signals": data}, - {}, - position_emit, - limit_update, - ) + if not self._check_device_is_valid(device): + return + + data = self.dev[device].read() + self._on_device_readback( + device, + self._device_ui_components(device), + {"signals": data}, + {}, + position_emit, + limit_update, + ) + + ui = self._device_ui_components(device) + if not ui.get("units"): + return + + try: + egu = f"[{self.dev[device].egu()}]" + except Exception: + egu = "" + + if egu: + ui["units"].setVisible(True) + ui["units"].setText(egu) + else: + ui["units"].setVisible(False) def _stop_device(self, device: str): """Stop call""" diff --git a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py index 5fba5316..430badde 100644 --- a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +++ b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py @@ -170,6 +170,7 @@ class PositionerBox(PositionerBoxBase): "stop": self.ui.stop, "tweak_increase": self.ui.tweak_right, "tweak_decrease": self.ui.tweak_left, + "units": self.ui.units, } @SafeSlot(dict, dict) diff --git a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui index e69cc225..347df23f 100644 --- a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +++ b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui @@ -135,6 +135,29 @@ + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + Motor units + + + + + + @@ -203,16 +226,16 @@ - - SpinnerWidget - QWidget -
spinner_widget
-
PositionIndicator QWidget
position_indicator
+ + SpinnerWidget + QWidget +
spinner_widget
+
diff --git a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py index 6c063fda..589a6c22 100644 --- a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +++ b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py @@ -1,4 +1,4 @@ -""" Module for a PositionerBox2D widget to control two positioner devices.""" +"""Module for a PositionerBox2D widget to control two positioner devices.""" from __future__ import annotations @@ -312,6 +312,7 @@ class PositionerBox2D(PositionerBoxBase): "stop": self.ui.stop_button, "tweak_increase": self.ui.tweak_increase_hor, "tweak_decrease": self.ui.tweak_decrease_hor, + "units": self.ui.units_hor, } elif device == "vertical": return { @@ -324,6 +325,7 @@ class PositionerBox2D(PositionerBoxBase): "stop": self.ui.stop_button, "tweak_increase": self.ui.tweak_increase_ver, "tweak_decrease": self.ui.tweak_decrease_ver, + "units": self.ui.units_ver, } else: raise ValueError(f"Device {device} is not represented by this UI") diff --git a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui index 9dfdc786..691bef2b 100644 --- a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +++ b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui @@ -6,8 +6,8 @@ 0 0 - 326 - 323 + 402 + 394
@@ -23,7 +23,7 @@ No positioner selected - + 0 @@ -40,15 +40,38 @@
- - - Position + + + Qt::Orientation::Horizontal - - Qt::AlignmentFlag::AlignCenter + + + 40 + 20 + + + + + + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + @@ -67,20 +90,7 @@ - - - - false - - - Qt::FocusPolicy::StrongFocus - - - Qt::AlignmentFlag::AlignCenter - - - - + @@ -94,6 +104,29 @@ + + + + false + + + Qt::FocusPolicy::StrongFocus + + + Qt::AlignmentFlag::AlignCenter + + + + + + + Position + + + Qt::AlignmentFlag::AlignCenter + + + @@ -132,15 +165,38 @@ - - - Position + + + Qt::Orientation::Horizontal - - Qt::AlignmentFlag::AlignCenter + + + 40 + 20 + + + + + + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + @@ -173,6 +229,16 @@ + + + + Position + + + Qt::AlignmentFlag::AlignCenter + + + @@ -525,16 +591,16 @@ - - StopButton - QWidget -
stop_button
-
PositionIndicator QWidget
position_indicator
+ + StopButton + QWidget +
stop_button
+
SpinnerWidget QWidget diff --git a/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui b/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui index 62f43bd9..bf2ffb62 100644 --- a/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +++ b/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui @@ -116,6 +116,13 @@ + + + + TextLabel + + + @@ -218,16 +225,16 @@ - - SpinnerWidget - QWidget -
spinner_widget
-
PositionIndicator QWidget
position_indicator
+ + SpinnerWidget + QWidget +
spinner_widget
+