zoukankan      html  css  js  c++  java
  • 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,就是滑块移动触发。

  • 相关阅读:
    【PHP】算法: 获取满足给定值的最优组合
    @程序员,你还记得当年高考时的样子吗?
    教妹学 Java:难以驾驭的多线程
    二十九岁,刚读完了财富启蒙读物《小狗钱钱》
    蓦然回首,Java 已经 24 岁了!
    @程序员,你需要点金融常识
    教妹学 Java:大有可为的集合
    @程序员,你需要点财商
    教妹学 Java:晦涩难懂的泛型
    大量阅读,并不等同于“走马观花”
  • 原文地址:https://www.cnblogs.com/yinsedeyinse/p/10964059.html
Copyright © 2011-2022 走看看