音量调节就是用滑块做的
有三个子控件
QSlider
QScrollBar
QDial
继承QWidget
由于直接使用QAbstractSlider创建显示不出来任何东西,所以我们用它的子类QSlider展示其功能
目录
4.1 点击滑动条 与 按PgUp或PgDn(翻页键) 的步长
7.2 设置 setInvertedAppearance()
11.3 滑块移动 sliderMove() 可以传递一个int
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
可传递两个整形,第一个为最小值,第二个为最大值
我们搞两个按钮测试它
我们现在点击一下更改最大值按钮
再点击一下更改最小值按钮