Files
superqt/qtrangeslider/_hooked.py
Talley Lambert f76cf6d126 FloatSlider (#4)
* decent point

* QLabeledDoubleRangeSlider

* update float add tests

* ugly but working

* fix validator

* flexible orientation

* horiz

* warnings are errors

* try convert

* fix signals

* skip signals test on windows pyqt6
2021-05-02 14:30:55 -04:00

50 lines
1.7 KiB
Python

from .qtcompat.QtWidgets import QSlider
class _HookedSlider(QSlider):
def _post_get_hook(self, value):
return value
def _pre_set_hook(self, value):
return value
def value(self) -> float: # type: ignore[override]
return float(self._post_get_hook(super().value()))
def setValue(self, value: float) -> None:
super().setValue(self._pre_set_hook(value))
def minimum(self) -> float: # type: ignore[override]
return self._post_get_hook(super().minimum())
def setMinimum(self, minimum: float):
super().setMinimum(self._pre_set_hook(minimum))
def maximum(self) -> float: # type: ignore[override]
return self._post_get_hook(super().maximum())
def setMaximum(self, maximum: float):
super().setMaximum(self._pre_set_hook(maximum))
def singleStep(self) -> float: # type: ignore[override]
return self._post_get_hook(super().singleStep())
def setSingleStep(self, step: float):
super().setSingleStep(self._pre_set_hook(step))
def pageStep(self) -> float: # type: ignore[override]
return self._post_get_hook(super().pageStep())
def setPageStep(self, step: float) -> None:
super().setPageStep(self._pre_set_hook(step))
def setRange(self, min: float, max: float) -> None:
super().setRange(self._pre_set_hook(min), self._pre_set_hook(max))
# def sliderChange(self, change) -> None:
# if change == QSlider.SliderValueChange:
# self.valueChanged.emit(self.value())
# if change == QSlider.SliderRangeChange:
# self.rangeChanged.emit(self.minimum(), self.maximum())
# return super().sliderChange(change)