Handle "mouse-not-on-plot" edge cases

its_happening
Tyler Goodlet 2020-08-02 15:23:20 -04:00
parent bfc1a1fcf5
commit 0389836fe6
1 changed files with 10 additions and 6 deletions

View File

@ -18,7 +18,7 @@ from ._axes import YAxisLabel, XAxisLabel
# TODO: # TODO:
# - checkout pyqtgraph.PlotCurveItem.setCompositionMode # - checkout pyqtgraph.PlotCurveItem.setCompositionMode
_mouse_rate_limit = 50 _mouse_rate_limit = 30
class CrossHair(pg.GraphicsObject): class CrossHair(pg.GraphicsObject):
@ -104,7 +104,11 @@ class CrossHair(pg.GraphicsObject):
pos = evt[0] pos = evt[0]
# find position inside active plot # find position inside active plot
mouse_point = self.active_plot.mapToView(pos) try:
mouse_point = self.active_plot.mapToView(pos)
except AttributeError:
# mouse was not on active plot
return
self.graphics[self.active_plot]['hl'].setY( self.graphics[self.active_plot]['hl'].setY(
mouse_point.y() mouse_point.y()
@ -120,10 +124,10 @@ class CrossHair(pg.GraphicsObject):
self.xaxis_label.update_label(evt_post=pos, point_view=mouse_point) self.xaxis_label.update_label(evt_post=pos, point_view=mouse_point)
def boundingRect(self): def boundingRect(self):
return self.active_plot.boundingRect() try:
return self.active_plot.boundingRect()
# def paint(self, p, *args): except AttributeError:
# pass return self.plots[0].boundingRect()
def _mk_lines_array(data: List, size: int) -> np.ndarray: def _mk_lines_array(data: List, size: int) -> np.ndarray: