053.QAbstractSlider_滑块类基类

QAbstractSlider 滑块类基类

  • 描述
    • 提供的范围内的整数值
    • 抽象类,需要借助子类来验证
  • 继承自:QWidget
  • 功能作用
    • 数值范围
      • 默认0 ~ 99
      setMaximum(int)                     # 设置最大取值
      maximum() -> int                    # 获取最大取值
      
      setMinimum(int)                     # 设置最小取值
      minimum() -> int                    # 获取最小取值
      
    • 当前数值
      setValue(int)                       # 设置当前数值
      value() -> int                      # 获取当前数值
      
    • 步长
      setPageStep(int)                    # 设置每页步长(键盘PgUp键、PgDn键)
      pageStep() -> int
      
      setSingleStep(int)                  # 设置单步步长(键盘上下键)
      singleStep() -> int
      
    • 是否追踪
      setTracking(bool enable)            # 设置value是否跟随滑块的位置变化而改变
      hasTracking() -> bool
      
      # 理解为:
      # value是否跟随滑块的位置变化而改变
      # 默认值为True:滑块滑动,值就发生改变
      # False:滑块滑动结束,松开鼠标后值才发生改变
      # 对valueChanged信号发射时机的影响
      
    • 滑块位置
      setSliderPosition(int)              # 设置滑块位置
      sliderPosition() -> int
      
      # 当setTracking设置为False时,设置滑块的位置后,值不会发生变化
      
    • 倒立外观
      • 大小数值位置反过来,默认是下小上大,设置后为下大上小
      setInvertedAppearance(bool)         # 设置大小数值位置是否反转
      invertedAppearance() -> bool
      
    • 操作反转
      • 上下键功能反过来,默认上为加下为减,设置后上为减下为加
      setInvertedControls(bool)           # 设置上下键功能是否反过来
      invertedControls() -> bool
      
      
    • 滑块方向
      • 控制外观方向,横向/纵向
      setOrientation(Qt.Orientation)      # 设置控件摆放方向
      orientation() -> Qt.Orientation     # 获取控件摆放方向
      
          # 参数 Qt.Orientation
                  Qt.Horizontal           # 水平方向
                  Qt.Vertical             # 垂直方向
      
    • 是否按下
      setSliderDown(bool)                 # 设置滑块是否按下状态
      isSliderDown() -> bool              # 获取滑块是否按下状态
      
  • 可用信号
    sliderPressed()                                 # 滑块被按下时,发射信号
    sliderReleased()                                # 滑块被释放时,发射信号
    
    sliderMoved(int value)                          # 滑块被移动时,发射信号。传递滑块当前值    
    valueChanged(int value)                         # 值发生改变时,发射信号。传递滑块当前值
    
    actionTriggered(int action)                     # 触发指定行为时,发射信号。传递当前行为对应索引
     QAbstractSlider.SliderNoAction              # 滑块没有行为
     QAbstractSlider.SliderSingleStepAdd         # 1,滑块单步步长增加行为,按上下键
     QAbstractSlider.SliderSingleStepSub         # 2,滑块单步步长减少行为,按上下键
     QAbstractSlider.SliderPageStepAdd           # 3,滑块每页步长增加行为,按PgUp键
     QAbstractSlider.SliderPageStepSub           # 4,滑块每页步长减少行为,按PgDn键
     QAbstractSlider.SliderToMinimum             # 5,滑块移动到最小值行为
     QAbstractSlider.SliderToMaximum             # 6,滑块移动到最大值行为
     QAbstractSlider.SliderMove                  # 7,滑块移动行为,鼠标拖动滑块
    rangeChanged(int min,int max)                  # 数值范围发生改变时,发射信号。传递最小值和最大值
    

  • 示例代码
  • 示例1:QAbstractSlider子类化功能作用演示
    from PyQt5.Qt import *
    import sys
    
    class Windows(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('QAbstractSlider-子类化功能演示')
            self.resize(500, 500)
            self.widget_list()
    
        def widget_list(self):
            self.add_widget()
    
    
        def add_widget(self):
            # 获取子类
            # print(QAbstractSlider.__subclasses__())
    
            labe = QLabel(self)
            labe.resize(100, 30)
            labe.move(107, 190)
            labe.setText('0')
    
            sld = QSlider(self)
            sld.move(100, 100)
    
            sld.valueChanged.connect(lambda val:labe.setText(str(val)))
    
            # sld.setMaximum(88)      # 设置最大值
            # sld.setMinimum(22)      # 设置最小值
            # sld.setValue(44)        # 设置当前值
            #
            # sld.setPageStep(10)     # 设置每页步长
            # sld.setSingleStep(5)    # 设置单步步长
            #
            sld.setTracking(False)   # 设置是否追踪(值跟随滑块移动而改变)
            #
            # sld.setSliderPosition(66)   # 设置滑块的位置
            # # 注意:设置不追踪时,修改滑块位置,数值不会跟随变化
            #
            # sld.setInvertedAppearance(True)     # 设置控件倒置,大小数值上下颠倒。此时按键操作与滑块移动相反
            # sld.setInvertedControls(True)       # 设置按键操作反转,按键向下数值变大,按键向上数值变小
            #
            # sld.setOrientation(Qt.Horizontal)       # 设置控件水平摆放
            # sld.setOrientation(Qt.Vertical)         # 设置控件垂直摆放
            # print(sld.orientation())
    
            # sld.setSliderDown(False)               # 设置是否按下状态(看不出效果)
            # print(sld.isSliderDown())
    
            # 可用信号
            # sld.sliderMoved.connect(lambda val:print('滑块移动了', val))
            # sld.valueChanged.connect(lambda val:print('值发生了改变', val))
    
            # sld.sliderPressed.connect(lambda : print('滑块被按下了'))
            # sld.sliderReleased.connect(lambda :print('滑块被释放了'))
    
            sld.actionTriggered.connect(lambda val: print('行为发生改变', val))
    
            sld.rangeChanged.connect(lambda val1,val2:print('范围发生了改变', val1,val2))
    
            sld.setMaximum(999)
            sld.setMinimum(-99)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = Windows()
    
        window.show()
        sys.exit(app.exec_())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失心疯_2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值