QSlider mouse direct jump

后端 未结 12 1777
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-23 16:27

Instead of stepping when the user clicks somewhere on the qslider I want to make the slider jump to that position. How can this be implemented ?

12条回答
  •  暖寄归人
    2020-12-23 17:15

    Here is a simple implementation in python using QStyle.sliderValueFromPosition():

    class JumpSlider(QtGui.QSlider):
    
        def mousePressEvent(self, ev):
            """ Jump to click position """
            self.setValue(QtGui.QStyle.sliderValueFromPosition(self.minimum(), self.maximum(), ev.x(), self.width()))
    
        def mouseMoveEvent(self, ev):
            """ Jump to pointer position while moving """
            self.setValue(QtGui.QStyle.sliderValueFromPosition(self.minimum(), self.maximum(), ev.x(), self.width()))
    

提交回复
热议问题