@@ -449,7 +449,10 @@ def gesture(self, kind, state):
449449 )
450450
451451 def wheel (self , modifiers = QC .Qt .KeyboardModifier .NoModifier ):
452- """Création d'un filtre pour l'événement molette"""
452+ """Create a filter for wheel events
453+
454+ Args:
455+ modifiers: keyboard modifiers to use with the wheel event"""
453456 return self .events .setdefault (("wheel" , modifiers ), WheelEventMatch (modifiers ))
454457
455458 def nothing (self , filter , event ):
@@ -866,6 +869,15 @@ def click(self, filter, event):
866869
867870
868871class WheelHandler (QC .QObject ):
872+ """Base class for handling mouse wheel events.
873+
874+ Args:
875+ filter: event filter into which to add the handler instance.
876+ mods: Keyboard modifier that can be used at the same time as the wheel to
877+ trigger the event. Defaults to QC.Qt.KeyboardModifier.NoModifier.
878+ start_state: start state to use in the event filter state machine.
879+ Defaults to 0."""
880+
869881 def __init__ (
870882 self ,
871883 filter : StatefulEventFilter ,
@@ -878,15 +890,17 @@ def __init__(
878890 )
879891
880892 def wheel (self , filter : StatefulEventFilter , event : QG .QWheelEvent ):
881- """
893+ """Handles the wheel event.
882894
883- :param filter :
884- :param event:
885- """
895+ Args :
896+ filter: event filter that contains the BasePlot instance
897+ event: the wheel event that triggered the action. """
886898 raise NotImplementedError ()
887899
888900
889901class WheelZoomHandler (WheelHandler ):
902+ """Class to handle zooming with the mouse wheel."""
903+
890904 def get_zoom_param (
891905 self , plot : BasePlot , pos : QPoint , factor : float
892906 ) -> tuple [tuple [float , float , float , float ], tuple [float , float , float , float ]]:
@@ -917,18 +931,21 @@ def get_zoom_param(
917931 return dx , dy
918932
919933 def wheel (self , filter : StatefulEventFilter , event : QG .QWheelEvent ):
920- """
934+ """Overrides the WheelHandler.wheel method to handle the zooming with the mouse
935+ wheel.
921936
922- :param filter:
923- :param event:
937+ Args:
938+ filter: event filter that contains the BasePlot instance
939+ event: the wheel event that triggered the zooming. Use to get zoom factor
940+ and position
924941 """
925942 plot = filter .plot
926- delta = event .angleDelta ().y () / 360
943+ zoom_factor = 1 + ( event .angleDelta ().y () / 360 )
927944
928945 center_point = event .globalPos ()
929- center_point = filter .plot .canvas ().mapFromGlobal (center_point )
946+ center_point = filter .plot .canvas ().mapFromGlobal (center_point ) # type: ignore
930947
931- dx , dy = self .get_zoom_param (plot , center_point , 1 + delta )
948+ dx , dy = self .get_zoom_param (plot , center_point , zoom_factor )
932949 plot .do_zoom_view (dx , dy )
933950
934951
0 commit comments