def _pixelPosToRangeValue(self, pos): groove = self._subControlRect(QStyle.SC_SliderGroove) handle = self._subControlRect(QStyle.SC_SliderHandle) if self.orientation() == Qt.Horizontal: slider_length = handle.width() slider_min = groove.x() slider_max = groove.right() - slider_length + 1 else: slider_length = handle.height() slider_min = groove.y() slider_max = groove.bottom() - slider_length + 1 return QStyle.sliderValueFromPosition( self.minimum(), self.maximum(), pos - slider_min, slider_max - slider_min, self.invertedAppearance())
def pixelPosToRangeValue(self, pos): opt = QStyleOptionSlider() self.initStyleOption(opt) gr = self.style().subControlRect(QStyle.CC_Slider, opt, QStyle.SC_SliderGroove, self) sr = self.style().subControlRect(QStyle.CC_Slider, opt, QStyle.SC_SliderHandle, self) if self.orientation() == QtCore.Qt.Horizontal: slider_length = sr.width() slider_min = gr.x() slider_max = gr.right() - slider_length + 1 else: slider_length = sr.height() slider_min = gr.y() slider_max = gr.bottom() - slider_length + 1 return QStyle.sliderValueFromPosition(self.minimum(), self.maximum(), pos - slider_min, slider_max - slider_min, opt.upsideDown)