GUI学习之二十——QAbstractSlider学习总结

今天学习一种全新的输入控件——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,就是滑块移动触发。

猜你喜欢

转载自www.cnblogs.com/yinsedeyinse/p/10964059.html