text: 
  from PyQt5.QtWidgets import QSlider
  from PyQt5.QtCore import pyqtSignal
  
  class DoubleSlider(QSlider):
    doubleValueChanged = pyqtSignal(float)
    def __init__(self, qtHorizontal, decimals=3, *args, **kargs):
      super(DoubleSlider, self).__init__(qtHorizontal, *args, **kargs)
      self._multi = 10 ** decimals
      self.valueChanged.connect(self.emitDoubleValueChanged)
  
    def emitDoubleValueChanged(self):
      value = float(super(DoubleSlider, self).value() / self._multi)
      self.doubleValueChanged.emit(value)
  
    def value(self):
      return float(super(DoubleSlider, self).value()) / self._multi
  
    def setMinimum(self, value):
      return super(DoubleSlider, self).setMinimum(value * self._multi)
  
    def setMaximum(self, value):
      return super(DoubleSlider, self).setMaximum(value * self._multi)
  
    def setSingleStep(self, value):
      return super(DoubleSlider, self).setSingleStep(value * self._multi)
  
    def singleStep(self):
      return float(super(DoubleSlider, self).singleStep()) / self._multi
  
    def setValue(self, value):
      super(DoubleSlider, self).setValue(int(value * self._multi))
  