mirror of
https://github.com/pyapp-kit/superqt.git
synced 2025-07-21 12:11:07 +02:00
* 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
50 lines
1.7 KiB
Python
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)
|