Hi Nicolas
I am not the expert but my application also has a crosshair and I used a signal proxy to limit the number of times the "mouse moved" signal is emitted. Here is a bit of code as an example (I hope it makes sense).
class MyPlot(gr.PlotItem):
def __init__(self, *args, **kwargs):
...
self.proxy = gr.SignalProxy(self.scene().sigMouseMoved,
rateLimit=5, # signals per second
slot=self.mouseMoved)
(gr is an alias for pyqtgraph)
As for avoiding redrawing the data that is behind the crosshair, I would be more than happy to learn how to do this as well.
Julio