52.QAbstractSlider

音量调节就是用滑块做的

有三个子控件

QSlider

QScrollBar

QDial

继承QWidget

由于直接使用QAbstractSlider创建显示不出来任何东西,所以我们用它的子类QSlider展示其功能

目录

1  创建

2  数值范围

2.1  获取最大值 maximum() --> int

2.2  设置最大值 setMaximum(int)

2.3  获取最小值 minimum() --> int

2.4  设置最小值 setMinimum(int)

3  当前数值

3.1  设置 setValue()

3.2  获取 value()

4  步长

4.1  点击滑动条 与 按PgUp或PgDn(翻页键) 的步长

4.1.1  获取 pageStep() --> int

4.1.2  设置 setPageStep(int)

4.2  使用方向键一次挪动的长度

4.2.1  获取 singleStep()

4.2.2  设置 setSingleStep()

5  是否追踪

5.1  获取 hasTracking()

5.2  设置 setTracking()

6  滑块位置

6.1  设置 setSliderPositon()

6.2  获取 sliderPosition()

7  倒立外观

7.1  获取 invertedAppearance()

7.2  设置 setInvertedAppearance()

8  操作反转

8.1  获取 setInvertedControls()

8.2  设置 setInvertedControls()

9  滑块方向

9.1  设置 setOrientation()

9.2  获取 orientation()

10  是否按下

11  信号

11.1  值变化 valueChanged

11.2  滑块被按下 sliderPressed

11.3  滑块移动 sliderMove() 可以传递一个int

11.4  滑块松开 sliderRelease

11.5  触发行为 actionTriggered()

11.6  最大值或最小值改变时触发信号 rangeChanged


1  创建

默认在最低的位置,可拖拽

使用向上,向下的按钮可以控制QSlider的值

  • 注意:默认情况下不是直接控制的滑块位置,而是值先变,滑块再动

2  数值范围

2.1  获取最大值 maximum() --> int

 

默认的最大值为99

2.2  设置最大值 setMaximum(int)

我们现在设置最大值为50

发现依然可以任意拖动

也就是说在默认情况下,最大值是与可拖动性无关的

设置之后我们再获取一下

2.3  获取最小值 minimum() --> int

默认情况下最小值是0

2.4  设置最小值 setMinimum(int)

我们现在设置它的最小值为-20

运行后发现滑块默认会待在0的位置

我们现在获取一些最小值和最大值

我们现在将最小值设置为20

运行后的结果

再获取一下最大值和最小值

3  当前数值

3.1  设置 setValue()

设置数值时默认情况下会改变滑块的位置

3.2  获取 value()

4  步长

我们搞一个标签获取当前的值,这样比较明显,搞标签获取滑块的值的demo在53.一个滑块和一个可以显示滑块数值的标签中有写

4.1  点击滑动条 与 按PgUp或PgDn(翻页键) 的步长

4.1.1  获取 pageStep() --> int

默认点击一次步长为10

初始状态

我们点击一下滑动条

上涨了10

4.1.2  设置 setPageStep(int)

我们现在将其设置为25

初始状态

我们点一下进度条

上升了25,我们再获取一下

4.2  使用方向键一次挪动的长度

4.2.1  获取 singleStep()

默认按一下方向键走一个单位

初始状态

按一下向上箭头

4.2.2  设置 setSingleStep()

我们现在一次方向键的步长改为5

初始状态

按一下上箭头

我们现在再获取一下

5  是否追踪

如果在追踪状态,QAbstractSlider的值随着滑块的位置实时变化

如果不在追踪状态,QAbstractSlider的值不随着滑块的位置实时变化

  • 值有可能在滑块移动时不变化,但如果值变化,滑块一定变化

5.1  获取 hasTracking()

默认为True,处于追踪状态

追踪状态下值随着滑块实时改变

5.2  设置 setTracking()

我们现在设置为不追踪状态

只有当松开拖拽的滑块时,右侧label的数值才会变

拖拽状态中是不会变的

我们再获取一下是否追踪

6  滑块位置

6.1  设置 setSliderPositon()

我们现在将滑块的位置置于60的位置

由于在初始状态下我没触发信号,所以label还是最小值

6.2  获取 sliderPosition()

我们将label的初始状态改一下

这样我们label的初始值就是滑块的当前值了

7  倒立外观

7.1  获取 invertedAppearance()

默认是False

上大下小

7.2  设置 setInvertedAppearance()

我们现在设置为True

上小下大

我们现在再获取一下

8  操作反转

8.1  获取 setInvertedControls()

默认是False

8.2  设置 setInvertedControls()

我们现在设置为True

运行后我们按一下 向下按键

我们现在再获取一下

9  滑块方向

9.1  设置 setOrientation()

参数为Orintation()

  • 1 - 水平
  • 除1外无论设置为什么值都为垂直

默认为竖直,我们现在设置为水平

9.2  获取 orientation()

10  是否按下

这个是滑块没被按下的状态

这个是滑块被按下的状态

我们搞一个按钮,模拟按下状态

这样也不是很明显,我们就在这展示一下怎么使用

运行后,点击一下按钮

11  信号

11.1  值变化 valueChanged

运行之后拖动一下滑块

11.2  滑块被按下 sliderPressed

运行后拖动一下滑块

11.3  滑块移动 sliderMove() 可以传递一个int

运行后移动一下滑块

11.4  滑块松开 sliderRelease

运行后拖动一下滑块

11.5  触发行为 actionTriggered()

可传递个整形参数表示用户当前的行为

  • 0 - QAbstractSlider.SliderNoAction - 用户无行为
  • 1 - QAbstractSlider.SliderSingleStepAdd - 增加了一个单步步长
  • 2 - QAbstractSlider.SliderSingleStepSub - 减少了一个单步步长
  • 3 - QAbstractSlider.SliderPageStepAdd - 增加了一个整页步长
  • 4 - QAbstractSlider.SliderPageStepSub - 减少了一个整页步长
  • 5 - QAbstractSlider.SliderToMinimum - 到达了最小值
  • 6 - QAbstractSlider.SliderToMaximum - 到达了最大值
  • 7 - QAbstractSlider.SliderMove - 移动了滑块

上面的七种行为0,5,6经测试没有触发出来

运行后我们按一下上箭头

再按一下下箭头

之后我们按一下向上翻页键

再按一下向下翻页键

之后再拖动一下滑块

11.6  最大值或最小值改变时触发信号 rangeChanged

可传递两个整形,第一个为最小值,第二个为最大值

我们搞两个按钮测试它

我们现在点击一下更改最大值按钮

再点击一下更改最小值按钮

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Suyuoa

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

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

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

打赏作者

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

抵扣说明:

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

余额充值