QAbstractSlider 类

QAbstractSlider 类提供在范围内的整数值。 更多...

头: #include <QAbstractSlider>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
继承: QWidget
继承者: QDial , QScrollBar ,和 QSlider

公共类型

enum SliderAction { SliderNoAction, SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, SliderPageStepSub, …, SliderMove }

特性

公共函数

  QAbstractSlider (QWidget * parent = nullptr)
virtual ~QAbstractSlider ()
bool hasTracking () const
bool invertedAppearance () const
bool invertedControls () const
bool isSliderDown () const
int maximum () const
int minimum () const
Qt::Orientation orientation () const
int pageStep () const
void setInvertedAppearance (bool)
void setInvertedControls (bool)
void setMaximum (int)
void setMinimum (int)
void setPageStep (int)
void setSingleStep (int)
void setSliderDown (bool)
void setSliderPosition (int)
void setTracking (bool enable )
int singleStep () const
int sliderPosition () const
void triggerAction (QAbstractSlider::SliderAction action )
int value () const

公共槽

void setOrientation (Qt::Orientation)
void setRange (int min , int max )
void setValue (int)

信号

void actionTriggered (int action )
void rangeChanged (int min , int max )
void sliderMoved (int value )
void sliderPressed ()
void sliderReleased ()
void valueChanged (int value )

保护类型

enum SliderChange { SliderRangeChange, SliderOrientationChange, SliderStepsChange, SliderValueChange }

保护函数

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

重实现保护函数

virtual void changeEvent (QEvent * ev ) override
virtual bool event (QEvent * e ) override
virtual void keyPressEvent (QKeyEvent * ev ) override
virtual void timerEvent (QTimerEvent * e ) override
virtual void wheelEvent (QWheelEvent * e ) override

详细描述

此类被设计作为 Widget 的通用超类像 QScrollBar , QSlider and QDial .

这里是类的主要特性:

  1. value :由 QAbstractSlider 维护的有界整数。
  2. minimum :最低可能值。
  3. maximum :最高可能值。
  4. singleStep :由抽象滑块提供的 2 自然步幅中的较小者,通常相当于用户按下箭头键。
  5. pageStep :由抽象滑块提供的 2 自然步幅中的较大者,通常相当于用户按下 PageUp 或 PageDown。
  6. tracking :是否启用滑块追踪。
  7. sliderPosition :滑块的当前位置。若 tracking 被启用 (默认),这等同于 value .

可以将整体 1 视为第 3 步幅大小。 setValue () 允许将当前值设为在允许范围内的任何整数,不仅仅是 minimum () + n * singleStep () 对于整数值 n 。某些 Widget 可能允许用户设置任何根本值;其它 Widget 可能仅仅提供倍增 singleStep () 或 pageStep ().

QAbstractSlider 发射一组综合信号:

信号 发射当
valueChanged () 值已改变。 tracking 确定用户交互期间是否发射此信号。
sliderPressed () 用户开始拖拽滑块。
sliderMoved () 用户拖拽滑块。
sliderReleased () 用户释放滑块。
actionTriggered () 滑块动作被触发。
rangeChanged () 范围已改变。

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

另请参阅 QAbstractSpinBox , QSlider , QDial , QScrollBar ,和 滑块范例 .

成员类型文档编制

enum QAbstractSlider:: SliderAction

常量
QAbstractSlider::SliderNoAction 0
QAbstractSlider::SliderSingleStepAdd 1
QAbstractSlider::SliderSingleStepSub 2
QAbstractSlider::SliderPageStepAdd 3
QAbstractSlider::SliderPageStepSub 4
QAbstractSlider::SliderToMinimum 5
QAbstractSlider::SliderToMaximum 6
QAbstractSlider::SliderMove 7

enum QAbstractSlider:: SliderChange

常量
QAbstractSlider::SliderRangeChange 0
QAbstractSlider::SliderOrientationChange 1
QAbstractSlider::SliderStepsChange 2
QAbstractSlider::SliderValueChange 3

特性文档编制

invertedAppearance : bool

此特性保持滑块是否展示其值的倒置。

若此特性为 false (默认),最小和最大值将展示在继承 Widget 的经典位置。若值为 true,最小和最大值将出现在其相反定位。

注意:此特性对于滑块和表盘最有意义。对于滚动条,滚动条子控件的视觉效果从属样式是否理解反转外观;大多数样式会忽略,用于滚动条的此特性。

访问函数:

bool invertedAppearance () const
void setInvertedAppearance (bool)

invertedControls : bool

此特性保持滑块是否反转其滚轮和键事件。

若此特性为 false ,"向上" 卷动鼠标滚轮并使用像 Page Up 键将朝最大递增滑块值。否则,按下 Page Up 将朝最小移动滑块值。

访问函数:

bool invertedControls () const
void setInvertedControls (bool)

maximum : int

此特性保持滑块的最大值

当设置此特性时, minimum 被调节若有必要,以确保范围仍然有效。滑块的当前值也被调节到新范围内。

访问函数:

int maximum () const
void setMaximum (int)

minimum : int

此特性保持滑块的最小值

当设置此特性时, maximum 被调节若有必要,以确保范围仍然有效。滑块的当前值也被调节到新范围内。

访问函数:

int minimum () const
void setMinimum (int)

orientation : Qt::Orientation

此特性保持滑块的取向

取向必须是 Qt::Vertical (默认) 或 Qt::Horizontal .

访问函数:

Qt::Orientation orientation () const
void setOrientation (Qt::Orientation)

pageStep : int

此特性保持页面步幅。

由抽象滑块提供的 2 自然步幅中的较大者,通常相当于用户按下 PageUp 或 PageDown。

访问函数:

int pageStep () const
void setPageStep (int)

另请参阅 singleStep .

singleStep : int

此特性保持单步幅。

由抽象滑块提供的 2 自然步幅中的较小者,通常相当于用户按下箭头键。

若在自动重复键事件期间修改特性,行为不确定。

访问函数:

int singleStep () const
void setSingleStep (int)

另请参阅 pageStep .

sliderDown : bool

此特性保持滑块是否被按下。

特性由子类设置,为让抽象滑块知道是否 tracking 有任何效果。

改变滑块向下特性会发射 sliderPressed () 和 sliderReleased () 信号。

访问函数:

bool isSliderDown () const
void setSliderDown (bool)

sliderPosition : int

此特性保持当前滑块位置

tracking 被启用 (默认),这等同于 value .

访问函数:

int sliderPosition () const
void setSliderPosition (int)

通知程序信号:

void sliderMoved (int value )

tracking : bool

此特性保持是否启用滑块追踪

若启用追踪 (默认),滑块发射 valueChanged () 信号当滑块正被拖拽时。若跟踪被禁用,滑块发射 valueChanged () 信号仅当用户释放滑块时。

访问函数:

bool hasTracking () const
void setTracking (bool enable )

另请参阅 sliderDown .

value : int

此特性保持滑块的当前值

滑块将值强制在合法范围内: minimum <= value <= maximum .

更改值也会改变 sliderPosition .

访问函数:

int value () const
void setValue (int)

通知程序信号:

void valueChanged (int value )

成员函数文档编制

QAbstractSlider:: QAbstractSlider ( QWidget * parent = nullptr)

构造抽象滑块。

parent 自变量被发送给 QWidget 构造函数。

minimum 默认为 0, maximum 到 99,采用 singleStep 1 尺寸和 pageStep 10 尺寸,及初始 value of 0.

[signal] void QAbstractSlider:: actionTriggered ( int action )

此信号被发射当滑块动作 action 被触发。动作是 SliderSingleStepAdd , SliderSingleStepSub , SliderPageStepAdd , SliderPageStepSub , SliderToMinimum , SliderToMaximum ,和 SliderMove .

当发射信号时, sliderPosition 已调节根据动作,但 value 尚未被传播 (意味着 valueChanged () 信号尚未被发射),且尚未更新视觉显示。在连接到此信号的槽中,因此可以安全地调节任何动作通过调用 setSliderPosition () 本身,基于动作和滑块值两者。

另请参阅 triggerAction ().

[signal] void QAbstractSlider:: rangeChanged ( int min , int max )

此信号被发射当滑块范围已改变时,按 min 是新的最小值,而 max 是新的最大值。

另请参阅 minimum and maximum .

[slot] void QAbstractSlider:: setRange ( int min , int max )

设置滑块的最小值为 min 和其最大值为 max .

max 小于 min , min 变为唯一合法值。

另请参阅 minimum and maximum .

[signal] void QAbstractSlider:: sliderMoved ( int value )

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

此信号被发射,甚至在关闭追踪时。

注意: 通知程序信号对于特性 sliderPosition .

另请参阅 setTracking (), valueChanged (), isSliderDown (), sliderPressed (),和 sliderReleased ().

[signal] void QAbstractSlider:: sliderPressed ()

此信号被发射当用户采用鼠标按下滑块时,或以编程方式当 setSliderDown (true) 被调用。

另请参阅 sliderReleased (), sliderMoved (),和 isSliderDown ().

[signal] void QAbstractSlider:: sliderReleased ()

此信号被发射当用户采用鼠标释放滑块时,或以编程方式当 setSliderDown (false) 被调用。

另请参阅 sliderPressed (), sliderMoved (),和 sliderDown .

[signal] void QAbstractSlider:: valueChanged ( int value )

此信号被发射当滑块值已改变时,采用新滑块 value 作为自变量。

注意: 通知程序信号对于特性 value .

[虚拟] QAbstractSlider:: ~QAbstractSlider ()

销毁滑块。

[override virtual protected] void QAbstractSlider:: changeEvent ( QEvent * ev )

重实现: QWidget::changeEvent (QEvent *event).

[override virtual protected] bool QAbstractSlider:: event ( QEvent * e )

重实现: QWidget::event (QEvent *event).

[override virtual protected] void QAbstractSlider:: keyPressEvent ( QKeyEvent * ev )

重实现: QWidget::keyPressEvent (QKeyEvent *event).

[protected] QAbstractSlider::SliderAction QAbstractSlider:: repeatAction () const

返回当前的重复动作。

另请参阅 setRepeatAction ().

[protected] void QAbstractSlider:: setRepeatAction ( QAbstractSlider::SliderAction action , int thresholdTime = 500, int repeatTime = 50)

设置动作 action 以重复触发按间隔 repeatTime ,后于初始延迟 thresholdTime .

另请参阅 triggerAction () 和 repeatAction ().

[virtual protected] void QAbstractSlider:: sliderChange ( QAbstractSlider::SliderChange change )

重实现此虚函数以跟踪滑块变化,譬如 SliderRangeChange , SliderOrientationChange , SliderStepsChange ,或 SliderValueChange 。默认实现只更新显示并忽略 change 参数。

[override virtual protected] void QAbstractSlider:: timerEvent ( QTimerEvent * e )

重实现: QObject::timerEvent (QTimerEvent *event).

void QAbstractSlider:: triggerAction ( QAbstractSlider::SliderAction action )

触发滑块 action 。可能的动作是 SliderSingleStepAdd , SliderSingleStepSub , SliderPageStepAdd , SliderPageStepSub , SliderToMinimum , SliderToMaximum ,和 SliderMove .

另请参阅 actionTriggered ().

[override virtual protected] void QAbstractSlider:: wheelEvent ( QWheelEvent * e )

重实现: QWidget::wheelEvent (QWheelEvent *event).