From 92a30bd450a0e4a89ae20ac95a3fab30dee2481e Mon Sep 17 00:00:00 2001 From: MK Date: Wed, 29 Mar 2023 17:13:12 +0200 Subject: [PATCH 1/2] added adiditonal options to slider --- .../properties_bin/custom_widget_slider.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py b/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py index ebc238d5..5ea618ba 100644 --- a/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py +++ b/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py @@ -10,9 +10,11 @@ class PropSlider(BaseProperty): widget. """ - def __init__(self, parent=None): + def __init__(self, parent=None, disable_scroll=True, realtime_update=False): super(PropSlider, self).__init__(parent) self._block = False + self._realtime_update = realtime_update + self._disable_scroll = disable_scroll self._slider = QtWidgets.QSlider() self._spinbox = QtWidgets.QSpinBox() self._init() @@ -33,6 +35,10 @@ def _init(self): self._slider.mousePressEvent = self._on_slider_mouse_press self._slider.mouseReleaseEvent = self._on_slider_mouse_release + if self._disable_scroll: + self._slider.wheelEvent = lambda _: None + self._spinbox.wheelEvent = lambda _: None + def _init_signal_connections(self): self._spinbox.valueChanged.connect(self._on_spnbox_changed) self._slider.valueChanged.connect(self._on_slider_changed) @@ -42,11 +48,14 @@ def _on_slider_mouse_press(self, event): self._slider_mouse_press_event(event) def _on_slider_mouse_release(self, event): - self.value_changed.emit(self.toolTip(), self.get_value()) + if not self._realtime_update: + self.value_changed.emit(self.toolTip(), self.get_value()) self._block = False def _on_slider_changed(self, value): self._spinbox.setValue(value) + if self._realtime_update: + self.value_changed.emit(self.toolTip(), self.get_value()) def _on_spnbox_changed(self, value): if value != self._slider.value(): From 081f82d3c6dbe8d96f459cd07d4a9549920afd59 Mon Sep 17 00:00:00 2001 From: MK Date: Wed, 29 Mar 2023 17:27:07 +0200 Subject: [PATCH 2/2] added options to PropDoubleSlider --- .../custom_widgets/properties_bin/custom_widget_slider.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py b/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py index 5ea618ba..66193ed2 100644 --- a/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py +++ b/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py @@ -115,10 +115,12 @@ def setValue(self, value): class PropDoubleSlider(PropSlider): - def __init__(self, parent=None, decimals=2): + def __init__(self, parent=None, decimals=2, disable_scroll=True, realtime_update=False): # Do not initialize Propslider, just its parents super(PropSlider, self).__init__(parent) self._block = False + self._realtime_update = realtime_update + self._disable_scroll = disable_scroll self._slider = QDoubleSlider(decimals=decimals) self._spinbox = QtWidgets.QDoubleSpinBox() self._init()