QAbstractSlider、QSlider、QDial、QScrollBar

QAbstractSlider

一、描述

此类为 QScrollBarQSlider QDial 等小部件的通用超类。

二、属性成员

1、invertedAppearance : bool

是否倒置外观。

如果为 false(默认值),则最小值和最大值将显示在继承小部件的经典位置。

如果为true,则最小值和最大值出现在它们相反的位置。

2、invertedControls : bool

是否反转其滚轮和按键事件。

如果为 false,则向上滚动鼠标滚轮或使用向上翻页等键会将值增加到最大值。

如果为 true,则向上滚动鼠标滚轮或使用向上翻页等键会将值减小到最小值。

3、maximum : int

最大值。设置此属性时,如有必要,会调整最小值以确保范围保持有效。当前值也被调整到新的范围内。

4、minimum : int

最小值。设置此属性时,如有必要,会调整最大值以确保范围保持有效。 当前值也被调整到新的范围内。

5、orientation : Qt::Orientation

滑块的方向。方向是 Qt::Vertical(默认)或 Qt::Horizontal

6、pageStep : int

Page步长。按下 PageUp 或 PageDown 键会变化的值。

7、singleStep : int

单步。按下方向键会变化的值。

8、sliderDown : bool

滑块是否被按下。

9、sliderPosition : int

当前滑块位置。如果启用了 tracking,则与 value 相同。

10、tracking : bool

是否启用滑块跟踪。默认为true。

如果启用,则滑块在拖动滑块时会发出 valueChanged() 信号。 如果禁用,则滑块仅在用户释放滑块时才会发出 valueChanged() 信号。

11、value : int

滑块的当前值。滑块强制值在合法范围内:最小值 <= 值 <= 最大值。

更改 value 也会更改 sliderPosition

三、成员函数

1、【信号】void actionTriggered(int action)

当滑块动作动作被触发时会发出这个信号。动作包括:

  • SliderNoAction
  • SliderSingleStepAdd
  • SliderSingleStepSub
  • SliderPageStepAdd
  • SliderPageStepSub
  • SliderToMinimum
  • SliderToMaximum
  • SliderMove

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

      void triggerAction(QAbstractSlider::SliderAction action)

触发滑块动作。 

2、【信号】void rangeChanged(int min, int max)

当滑块范围发生变化时会发出此信号,min 是新的最小值,max 是新的最大值。

3、void setRange(int min, int max)

将滑块的最小值设置为 min,将其最大值设置为 max。

4、【信号】void sliderMoved(int value)

当 sliderDown 为true并且滑块移动时发出此信号。这通常发生在用户拖动滑块时。value 是新的滑块位置。

即使 tracking 为 false 也会发出此信号。

5、【信号】void sliderPressed()

此信号在用户使用鼠标按下滑块时、在调用 setSliderDown(true) 时发出。

6、【信号】void sliderReleased()

当用户使用鼠标释放滑块时、在调用 setSliderDown(false) 时发出此信号。 

7、 【信号】void valueChanged(int value)

value 发生变化时会发出此信号,并将新滑块值作为参数。

8、void setRepeatAction(QAbstractSlider::SliderAction action,int thresholdTime = 500,int repeatTime = 50)

在 thresholdTime 的初始延迟之后,将 action 操作设置为以 repeatTime 的间隔重复触发。

      QAbstractSlider::SliderAction repeatAction()

返回当前的重复动作。

9、void sliderChange(QAbstractSlider::SliderChange change)

重新实现此虚函数以跟踪滑块更改。

  • SliderRangeChange
  • SliderOrientationChange
  • SliderStepsChange
  • SliderValueChange

QSlider

一、描述

QSlider 是用于控制有界值的经典小部件。它允许用户沿水平或垂直凹槽移动滑块手柄,并将手柄的位置转换为合法范围内的整数值。

QSlider 自己的功能很少; 大多数功能都在 QAbstractSlider 中。 最有用的函数是 setValue() 直接将滑块设置为某个值。

二、类型成员

1、enum QSlider::TickPosition:此枚举指定相对于滑块的凹槽和用户移动的手柄绘制刻度线的位置。

  • NoTicks:不绘制任何刻度线。
  • TicksBothSides:在凹槽的两侧绘制刻度线。
  • TicksAbove:在(水平)滑块上方绘制刻度线
  • TicksBelow:在(水平)滑块下方绘制刻度线
  • TicksLeft:在(垂直)滑块左侧绘制刻度线
  • TicksRight:在(垂直)滑块的右侧绘制刻度线 

三、属性成员

1、tickInterval : int

刻度线之间的间隔。这是一个值区间,而不是像素区间。默认值为 0。

如果为 0,则滑块将在 singleStep pageStep 之间进行选择。

2、tickPosition : TickPosition

滑块的刻度线位置。默认值为 QSlider::NoTicks

四、成员函数

1、void initStyleOption(QStyleOptionSlider *option)

使用此 QSlider 中的值初始化选项。 当子类需要一个 QStyleOptionSlider 但又不想自己填写所有信息时,此方法很有用。


QDial

一、描述

QDial 类提供了一个圆形范围控制控件。

由于 QDial 继承自 QAbstractSlider,所以它的行为类似于滑块。

与滑块不同的是,QDial 尝试绘制一定数量的刻线。

但如果没有足够的像素来绘制每一个刻线,QDial 将尝试绘制一个统一集(例如,每隔二个或三个刻线绘制一次)。

二、属性成员

1、notchSize : const int

当前的刻线数量。

此属性以范围控制单位为单位,而不是像素,并且计算为 singleStep() 的倍数,从而使屏幕上的刻线大小接近 notchTarget()。

2、notchTarget : qreal

刻线之间的像素数。默认为 3.7 像素。QDial 尝试放置在每个刻线之间的像素数。

3、notchesVisible : bool

是否显示刻线。默认不显示刻线。

如果为true,则在表盘周围绘制一系列刻线以指示可用值的范围。

4、wrapping : bool

是否启用环绕。默认为 false。

如果启用,箭头可以在刻度盘上以任意角度定向。

如果禁用,箭头将被限制在表盘的上部,如果它被旋转到表盘底部的空间中,它将被夹到有效值范围的最近端。

三、成员函数

1、void initStyleOption(QStyleOptionSlider *option)

使用此 QDial 中的值初始化选项。当子类需要一个 QStyleOptionSlider 但又不想自己填写所有信息时,此方法很有用。


QScrollBar

一、描述

滚动条控件,它使用户能够访问大于用于显示它的小部件的文档部分。它提供了用户在文档中的当前位置和可见文档数量的视觉指示。滚动条通常配备其他控件,可以实现更准确的导航。 Qt 以适合每个平台的方式显示滚动条。

如果需要在另一个小部件上提供滚动视图,使用 QScrollArea 类可能更方便,因为它提供了视口小部件和滚动条。如果需要使用 QAbstractScrollArea 为专门的小部件实现类似的功能,QScrollBar 很有用。对于使用滑块控件获取给定范围内的值的大多数其他情况,QSlider 类可能更适合。

滚动条通常包括四个独立的控件:滑块、滚动箭头和页面控件。

  • a滑块:提供了一种快速转到文档任何部分的方法,但不支持在大型文档中进行准确导航。
  • b滚动箭头:按钮,可用于准确导航到文档中的特定位置。
  • c页面控件:拖动滑块的区域(滚动条的背景)。 单击此处将滚动条移向单击一个“页面”。 该值通常与滑块的长度相同。

为滚动条指定的值范围通常与为 QSlider 确定的值范围不同,因为需要考虑滑块的长度。如果有一个 100 行的文档,而只能在一个小部件中显示 20 行,可能希望构建一个页面步长为 20、最小值为 0、最大值为 80 的滚动条。这将给我们一个带有五个“页面”的滚动条。

文档长度、滚动条中使用的值范围和 pageStep 之间的关系:

文档长度 = maximum() - minimum() + pageStep()

QScrollBar 只提供整数范围。尽管 QScrollBar 处理非常大的数字,但当前屏幕上的滚动条不能有效地表示超过 100,000 像素的范围。 除此之外,用户很难使用键盘或鼠标来控制滑块,并且滚动箭头的使用将受到限制。

二、成员函数

1、void initStyleOption(QStyleOptionSlider *option)

使用此 QScrollBar 中的值初始化选项。 当子类需要一个 QStyleOptionSlider 但又不想自己填写所有信息时,此方法很有用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值