Skip to content

Commit 0b11d86

Browse files
authored
Merge pull request #317 from manuelkoester/slider_options
Added adiditonal options to slider
2 parents b5b4500 + 081f82d commit 0b11d86

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

108117
class 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

Comments
 (0)