From 2ed5d7208c42f8a1175a49236d706ebf503875e4 Mon Sep 17 00:00:00 2001 From: wyzula-jan <133381102+wyzula-jan@users.noreply.github.com> Date: Mon, 28 Aug 2023 17:47:24 +0200 Subject: [PATCH] fix: crosshair snaps correctly to x dataset --- bec_widgets/qt_utils/crosshair.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/bec_widgets/qt_utils/crosshair.py b/bec_widgets/qt_utils/crosshair.py index 768f8108..72cfe3a5 100644 --- a/bec_widgets/qt_utils/crosshair.py +++ b/bec_widgets/qt_utils/crosshair.py @@ -63,9 +63,19 @@ class Crosshair(QObject): size=10, pen=pg.mkPen(None), brush=pg.mkBrush(color) ) self.marker_moved_1d.append(marker_moved) - self.marker_clicked_1d.append(marker_clicked) self.plot_item.addItem(marker_moved) - self.plot_item.addItem(marker_clicked) + # Create glowing effect markers for clicked events + marker_clicked_list = [] + for size, alpha in [(18, 64), (14, 128), (10, 255)]: + marker_clicked = pg.ScatterPlotItem( + size=size, + pen=pg.mkPen(None), + brush=pg.mkBrush(color.red(), color.green(), color.blue(), alpha), + ) + marker_clicked_list.append(marker_clicked) + self.plot_item.addItem(marker_clicked) + + self.marker_clicked_1d.append(marker_clicked_list) elif isinstance(item, pg.ImageItem): # 2D plot self.marker_2d = pg.ROI( [0, 0], size=[1, 1], pen=pg.mkPen("r", width=2), movable=False @@ -200,10 +210,11 @@ class Crosshair(QObject): [round(y_val, self.precision) for y_val in y_values], ) for i, y_val in enumerate(y_values): - self.marker_clicked_1d[i].setData( - [x if not self.is_log_x else np.log10(x)], - [y_val if not self.is_log_y else np.log10(y_val)], - ) + for marker in self.marker_clicked_1d[i]: + marker.setData( + [x if not self.is_log_x else np.log10(x)], + [y_val if not self.is_log_y else np.log10(y_val)], + ) elif isinstance(item, pg.ImageItem): if x is None or y_values is None: return