From 7a531c17d6a4411550600ddc8bb9d56ee777259d Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Tue, 20 May 2025 21:11:14 +0200 Subject: [PATCH] refactor(image_roi): glowing handles for Rectangle roi --- bec_widgets/widgets/plots/image/image.py | 1 + bec_widgets/widgets/plots/roi/image_roi.py | 7 +++++-- tests/unit_tests/test_image_rois.py | 2 -- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bec_widgets/widgets/plots/image/image.py b/bec_widgets/widgets/plots/image/image.py index 9a35a763..eeff43a9 100644 --- a/bec_widgets/widgets/plots/image/image.py +++ b/bec_widgets/widgets/plots/image/image.py @@ -369,6 +369,7 @@ class Image(PlotBase): # Add to plot and controller (controller assigns color) self.plot_item.addItem(roi) self.roi_controller.add_roi(roi) + roi.add_scale_handle() return roi def remove_roi(self, roi: int | str): diff --git a/bec_widgets/widgets/plots/roi/image_roi.py b/bec_widgets/widgets/plots/roi/image_roi.py index aac64a75..670b1ce4 100644 --- a/bec_widgets/widgets/plots/roi/image_roi.py +++ b/bec_widgets/widgets/plots/roi/image_roi.py @@ -414,8 +414,6 @@ class RectangularROI(BaseROI, pg.RectROI): self.sigRegionChanged.connect(self._on_region_changed) self.adorner = LabelAdorner(roi=self) - if resize_handles: - self.add_scale_handle() self.hoverPen = fn.mkPen(color=(255, 0, 0), width=3, style=QtCore.Qt.DashLine) self.handleHoverPen = fn.mkPen("lime", width=4) @@ -440,6 +438,11 @@ class RectangularROI(BaseROI, pg.RectROI): self.addScaleHandle([0, 0.5], [1, 0.5]) # left edge self.addScaleHandle([1, 0.5], [0, 0.5]) # right edge + self.handlePen = fn.mkPen("#ffff00", width=5) # bright yellow outline + self.handleHoverPen = fn.mkPen("#00ffff", width=4) # cyan, thicker when hovered + self.handleBrush = (200, 200, 0, 120) # semi-transparent fill + self.handleHoverBrush = (0, 255, 255, 160) + def _on_region_changed(self): """ Handles ROI region change events. diff --git a/tests/unit_tests/test_image_rois.py b/tests/unit_tests/test_image_rois.py index a4a402e4..d64e38df 100644 --- a/tests/unit_tests/test_image_rois.py +++ b/tests/unit_tests/test_image_rois.py @@ -3,9 +3,7 @@ from __future__ import annotations from typing import Literal import numpy as np -import pyqtgraph as pg import pytest -from qtpy.QtCore import QPointF from bec_widgets.widgets.plots.image.image import Image from bec_widgets.widgets.plots.roi.image_roi import CircularROI, RectangularROI, ROIController