基本Widgets(09):【类】QAbstractSlider[官翻]

QAbstractSlider Class

QAbstractSlider类提供了一个范围内的整数值。

Header#include < QAbstractSlider>
qmakeQT += widgets
InheritsQWidget
Inherited ByQDial, QScrollBar, and QSlider

详细说明

这个类被设计为QScrollBar、QSlider和QDial等小部件的通用超类。

下面是这个类的主要属性:

  1. value: QAbstractSlider维护的有界整数
  2. minimum:最小值
  3. maximum:可能的最大值
  4. singleStep:抽象滑块提供的两个自然步骤中较小的一个,通常对应于用户按下箭头键
  5. pageStep:抽象滑块提供的两个自然步骤中较大的一个,通常与用户按PageUp或PageDown相对应
  6. tracking:是否启用滑块跟踪
  7. sliderPosition:当前滑块的位置。如果启用了跟踪(默认值),这与value相同

可以将Unity(1)视为第三步长。。setValue()允许你将当前值设置为允许范围内的任何整数,而不仅仅是minimum() + n * singleStep()对于n的整数值。一些小部件可能允许用户设置任何值;其他的可能只提供singleStep()或pageStep()的倍数。

QAbstractSlider发出一组全面的信号:

SignalEmitted when
valueChanged()值发生了变化。跟踪确定该信号是否在用户交互过程中发射。
sliderPressed()用户开始拖动滑块。
sliderMoved()用户拖动滑块。
sliderReleased()用户释放滑块。
actionTriggered()滑块动作被触发。
rangeChanged()范围改变了。

QAbstractSlider提供了一个sliderChange()虚函数,它非常适合更新滑块的屏幕表示。通过调用triggerAction(),子类触发滑块动作。两个助手函数QStyle::sliderPositionFromValue()和QStyle::sliderValueFromPosition()帮助子类和样式将屏幕坐标映射到逻辑范围值。

属性

  1. invertedAppearance: bool 反转显示
    注意:这个属性对于滑块和刻度盘最有意义。对于滚动条,滚动条子控件的视觉效果取决于样式是否理解反转外观;大多数样式忽略滚动条的这个属性

    Access functions:

    • bool invertedAppearance() const
    • void setInvertedAppearance(bool)
  2. invertedControls: bool 滑块是否反转滚轮和键事件
    如果该属性为false,滚动鼠标滚轮和使用page up这样的键将增加滑块的值到其最大值。否则,按page up将把value移动到滑块的最小值。

    Access functions:

    • bool invertedControls() const
    • void setInvertedControls(bool)
  3. maximum: int 最大值

    Access functions:

    • int maximum() const
    • void setMaximum(int)
  4. minimum: int 最小值

    Access functions:

    • int minimum() const
    • void setMinimum(int)
  5. orientation: Qt::Orientation 滑块的方向
    方向必须是Qt :: Vertical(默认)或Qt :: Horizontal。

    Access functions:

    • Qt::Orientation orientation() const
    • void setOrientation(Qt::Orientation)
  6. pageStep: int 页面步数
    抽象滑块提供的两个自然步骤中的较大者,通常对应于用户按PageUp或PageDown。

    Access functions:

    • int pageStep() const
    • void setPageStep(int)
  7. singleStep: int 单个步数
    抽象滑块提供的两个自然步骤中较小的一个,通常对应于用户按下箭头键。
    如果在自动重复键事件期间修改了属性,则未定义行为。

    Access functions:

    • int singleStep() const
    • void setSingleStep(int)
  8. sliderDown: bool 滑块是否被按下
    该属性是由子类设置的,以便让抽象滑块知道跟踪是否有效果。
    改变滑块向下属性会发出sliderPressed()和sliderrelease()信号。

    Access functions:

    • bool isSliderDown() const
    • void setSliderDown(bool)
  9. sliderPosition: int 当前滑块的位置
    如果启用了跟踪(默认值),这与value相同。

    Access functions:

    • int sliderPosition() const
    • void setSliderPosition(int)

    Notifier signal:

    • void sliderMoved(int value)
  10. tracking: bool 是否启用滑块跟踪
    如果跟踪是启用的(默认),滑块将在拖动滑块时发出valueChanged()信号。如果跟踪被禁用,滑块只在用户释放滑块时发出valueChanged()信号。

    Access functions:

    • bool hasTracking() const
    • void setTracking(bool enable)
  11. value: int 滑块的当前值
    滑块将强制该值在合法范围内:minimum <= value <= maximum。
    改变值也会改变sliderPosition。

    Access functions:

    • int value() const
    • void setValue(int)

    Notifier signal:

    • void valueChanged(int value)

公共函数

构造析构

  1. QAbstractSlider(QWidget *parent = nullptr)
  2. virtual ~QAbstractSlider()

属性访问

  1. bool hasTracking() const
  2. void setTracking(bool enable)
  3. bool invertedAppearance() const
  4. void setInvertedAppearance(bool)
  5. bool invertedControls() const
  6. void setInvertedControls(bool)
  7. bool isSliderDown() const
  8. void setSliderDown(bool)
  9. int maximum() const
  10. void setMaximum(int)
  11. int minimum() const
  12. void setMinimum(int)
  13. int pageStep() const
  14. void setPageStep(int)
  15. int singleStep() const
  16. void setSingleStep(int)
  17. int sliderPosition() const
  18. void setSliderPosition(int)
  19. Qt::Orientation orientation() const
  20. int value() const

特殊

  1. void triggerAction(QAbstractSlider::SliderAction action) 触发滑块动作
    可能的动作是SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, SliderPageStepSub, sliderminimum, slidertommaximum和SliderMove。

公共槽

  1. void setOrientation(Qt::Orientation) 见属性
  2. void setValue(int) 见属性
  3. void setRange(int min, int max) 设置滑块的最小值和最大值
    如果max小于min,则min成为唯一的合法值。

信号

  1. void actionTriggered(int action) 当滑块动作动作被触发时,这个信号被发出

    动作是SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, SliderPageStepSub, sliderminimum, slidertommaximum和SliderMove。

    当信号被发出时,sliderPosition已经根据动作进行了调整,但是值还没有被传播(意味着valueChanged()信号还没有被发出),视觉显示也没有被更新。因此,在连接到这个信号的插槽中,您可以根据动作和滑块的值自己调用setSliderPosition()安全地调整任何动作。

  2. void rangeChanged(int min, int max)

  3. void sliderMoved(int value) 当sliderDown为true并且滑块移动时,将发出此信号
    这通常发生在用户拖动滑块时。这个值是新的滑块位置。
    这个信号即使在跟踪关闭时也会发出。
    注意:sliderPosition属性的通知器信号。

  4. void sliderPressed() 当用户使用鼠标按下滑块时,或者调用setSliderDown(true)时,会发出这个信号

  5. void sliderReleased() 当用户使用鼠标释放滑块时,或调用setSliderDown(false)时,该信号被发出

  6. void valueChanged(int value) 当滑块的值发生变化时,将发出这个信号,并以新的滑块值作为参数

受保护的类型

  1. enum SliderChange { SliderRangeChange, SliderOrientationChange, SliderStepsChange, SliderValueChange }

受保护的函数

  1. QAbstractSlider::SliderAction repeatAction() const
  2. void setRepeatAction(QAbstractSlider::SliderAction action, int thresholdTime = 500, int repeatTime = 50)
  3. virtual void sliderChange(QAbstractSlider::SliderChange change)

重写的受保护的函数

  1. virtual void changeEvent(QEvent *ev) override
  2. virtual bool event(QEvent *e) override
  3. virtual void keyPressEvent(QKeyEvent *ev) override
  4. virtual void timerEvent(QTimerEvent *e) override
  5. virtual void wheelEvent(QWheelEvent *e) override

参考

  • Sliders Example
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值