今天学习一种全新的输入控件——QAbstractSlider()滑块控件的基础控件。
一.描述:
QAbstractSlider()是QWidget()的子类,提供了一个范围内的整数值。它是QSlider,QScrollBar和QDial的父类(抽象类),将多种滑动控件的共性抽象了出来。
QAbstractSlider()是个抽象类,使用必须通过子类来实例化。下面的功能演示都有QSlider来实现。
二.功能作用
1.数值范围
默认的控件范围是0-9,可以通过设定来改变。
QAbstractSlider.setMaximum(self, a0: int) #设定最大值 QAbstractSlider.setMinimum(self, a0: int) #设定最小值 QAbstractSlider.maximum() #获取最大值——>int QAbstractSlider.minimum() #获取最小值——>int
2.当前数值
QAbstractSlider.setValue(self, a0: int) #设定当前数值 QAbstractSlider.value() #获取最小值——>int
3.步长
步长是通过键盘操作时改变的值。分为单步步长和移页步长,单步是指用上下箭头改变的值(默认值为1),而移页是指用键盘pageup和pagedown操作时的步长(默认值为10)。
QAbstractSlider.setSingleStep(self, a0: int) #设置单步步长 QAbstractSlider.setPageStep(self, a0: int) #设置移页步长 QAbstractSlider.singleStep() #获取单步步长——>int QAbstractSlider.pageStep() #获取移页步长——>int
4.是否追踪
追踪的设定主要影响到后面信号的发射,如果不追踪的话鼠标松在点击拖拽后松开前时是不会发送信号的,如果追踪的话只要改变了滑块位置就会发送个valuechanged这个信号的。
QAbstractSlider.setTracking(self, enable: bool) #追踪设置 QAbstractSlider.hasTracking() #获取是否追踪——>bool
5.滑块位置
QAbstractSlider.setSliderPosition(self, a0: int) #设定滑块位置 QAbstractSlider.sliderPosition() #获取滑块位置——>int
滑块位置的设定和是否追踪关联能影响到通过代码是否能够发送valuechanged信号
6.倒立外观
默认情况控件都是大值在上面小值在下面,启用了倒立外观就把大值放在了下面。
QAbstractSlider.setInvertedAppearance(self, a0: bool)#设置倒立外观 QAbstractSlider.invertedAppearance() #获取是否开启倒立——>bool
7.操作反转
默认情况控件按键盘上键或pageup为加数值,下或pagedown为减数值。启动了操作反转可以用上来减数值。
QAbstractSlider.setInvertedControls(self, a0: bool) #设置操作反转 QAbstractSlider.setInvertedControls() #获取是否操作反转——>bool
8.滑块方向
QAbstractSlider.setOrientation(Qt.Horizontal) #设置方向 QAbstractSlider.orientation() #获取方向——>int Qt.Horizontal #横向,默认左小右大,返回值1 Qt.Vertical #纵向 返回值2
9.是否按下
这个功能用的少,主要是获取值。其实在不追踪的时候valuechanged的状态判定就是基于是否被按下的。如果返回值为False则发送信号。
QAbstractSlider.setSliderDown(self, a0: bool) #设置被按下 QAbstractSlider.isSliderDown() #获取是否被按下——>bool
三.信号
QAbstractSlider.valueChanged(self, value: int)
QAbstractSlider.sliderPressed(self)
QAbstractSlider.sliderMoved(self, position: int)
QAbstractSlider.sliderReleased(self)
QAbstractSlider.actionTriggered(self, action: int)
QAbstractSlider.rangeChanged(self, min: int, max: int)
都是字面的意思,没什么好讲的!只有一个actionTriggered要说一下,它对应有下面的枚举状态对应的返回值。
QAbstractSlider.SliderNoAction QAbstractSlider.SliderSingleStepAdd #1 QAbstractSlider.SliderSingleStepSub #2 QAbstractSlider.SliderPageStepAdd #3 QAbstractSlider.SliderPageStepSub #4 QAbstractSlider.SliderToMinimum #5 QAbstractSlider.SliderToMaximum #6 QAbstractSlider.SliderMove #7
但是第5、6个滑动到最大最小我一直没试出来,都是返回的7,就是滑块移动触发。