@@ -10,9 +10,11 @@ class PropSlider(BaseProperty):
1010 widget.
1111 """
1212
13- def __init__ (self , parent = None ):
13+ def __init__ (self , parent = None , disable_scroll = True , realtime_update = False ):
1414 super (PropSlider , self ).__init__ (parent )
1515 self ._block = False
16+ self ._realtime_update = realtime_update
17+ self ._disable_scroll = disable_scroll
1618 self ._slider = QtWidgets .QSlider ()
1719 self ._spinbox = QtWidgets .QSpinBox ()
1820 self ._init ()
@@ -33,6 +35,10 @@ def _init(self):
3335 self ._slider .mousePressEvent = self ._on_slider_mouse_press
3436 self ._slider .mouseReleaseEvent = self ._on_slider_mouse_release
3537
38+ if self ._disable_scroll :
39+ self ._slider .wheelEvent = lambda _ : None
40+ self ._spinbox .wheelEvent = lambda _ : None
41+
3642 def _init_signal_connections (self ):
3743 self ._spinbox .valueChanged .connect (self ._on_spnbox_changed )
3844 self ._slider .valueChanged .connect (self ._on_slider_changed )
@@ -42,11 +48,14 @@ def _on_slider_mouse_press(self, event):
4248 self ._slider_mouse_press_event (event )
4349
4450 def _on_slider_mouse_release (self , event ):
45- self .value_changed .emit (self .toolTip (), self .get_value ())
51+ if not self ._realtime_update :
52+ self .value_changed .emit (self .toolTip (), self .get_value ())
4653 self ._block = False
4754
4855 def _on_slider_changed (self , value ):
4956 self ._spinbox .setValue (value )
57+ if self ._realtime_update :
58+ self .value_changed .emit (self .toolTip (), self .get_value ())
5059
5160 def _on_spnbox_changed (self , value ):
5261 if value != self ._slider .value ():
@@ -106,10 +115,12 @@ def setValue(self, value):
106115
107116
108117class PropDoubleSlider (PropSlider ):
109- def __init__ (self , parent = None , decimals = 2 ):
118+ def __init__ (self , parent = None , decimals = 2 , disable_scroll = True , realtime_update = False ):
110119 # Do not initialize Propslider, just its parents
111120 super (PropSlider , self ).__init__ (parent )
112121 self ._block = False
122+ self ._realtime_update = realtime_update
123+ self ._disable_scroll = disable_scroll
113124 self ._slider = QDoubleSlider (decimals = decimals )
114125 self ._spinbox = QtWidgets .QDoubleSpinBox ()
115126 self ._init ()
0 commit comments