QAbstractSlider 类

QAbstractSlider 类提供了一个范围之内的整数值。更多信息...

头文件 #include <QAbstractSlider>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承 QWidget
继承者

QDialQScrollBarQSlider

公共类型

枚举SliderAction { SliderNoAction, SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, SliderPageStepSub, …, SliderMove }

属性

公共函数

QAbstractSlider(QWidget *parent = nullptr)
virtual~QAbstractSlider()
boolhasTracking() const
boolinvertedAppearance() const
boolinvertedControls() const
boolisSliderDown() const
intmaximum() const
intminimum() const
Qt::Orientationorientation() const
intpageStep() const
voidsetInvertedAppearance(bool)
voidsetInvertedControls(bool)
voidsetMaximum(int)
voidsetMinimum(int)
voidsetPageStep(int)
voidsetSingleStep(int)
voidsetSliderDown(bool)
voidsetSliderPosition(int)
voidsetTracking(bool enable)
intsingleStep() const
intsliderPosition() const
voidtriggerAction(QAbstractSlider::SliderAction action)
intvalue() const

公共槽

voidsetOrientation(Qt::Orientation)
voidsetRange(int min, int max)
voidsetValue(int)

信号

voidactionTriggered(int action)
voidrangeChanged(int min, int max)
voidsliderMoved(int value)
voidsliderPressed()
voidsliderReleased()
voidvalueChanged(int value)

受保护的类型

枚举SliderChange { SliderRangeChange, SliderOrientationChange, SliderStepsChange, SliderValueChange }

受保护函数

QAbstractSlider::SliderActionrepeatAction() const
voidsetRepeatAction(QAbstractSlider::SliderAction action, int thresholdTime = 500, int repeatTime = 50)
virtual voidsliderChange(QAbstractSlider::SliderChange change)

重实现的受保护函数

virtual voidchangeEvent(QEvent *ev) override
virtual boolevent(QEvent *e) override
virtual voidkeyPressEvent(QKeyEvent *ev) override
virtual voidtimerEvent(QTimerEvent *e) override
virtual voidwheelEvent(QWheelEvent *e) override

详细说明

该类被设计成类似 QScrollBarQSliderQDial 等小部件的通用基类。

以下是该类的主要属性:

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

单位(1)可以看作是第三个步长。 setValue() 允许您将当前值设置到允许范围内的任意整数,而不仅仅是 minimum() + n * singleStep() 的整数 n 值。某些小部件可能允许用户设置任何值;其他小部件可能只提供 singleStep() 或 pageStep() 的倍数。

QAbstractSlider 产生了一组全面的信号

信号当发生以下情况时
valueChanged()值已更改。跟踪(tracking)决定此信号是否在用户交互期间发出。
sliderPressed()用户开始拖拽滑块。
sliderMoved()用户拖拽滑块。
sliderReleased()用户释放滑块。
actionTriggered()触发了一个滑块动作。
rangeChanged()范围已更改。

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

另请参阅QAbstractSpinBoxQSliderQDialQScrollBar滑块示例

成员类型文档

枚举QAbstractSlider::SliderAction

常量
QAbstractSlider::SliderNoAction0
QAbstractSlider::SliderSingleStepAdd1
QAbstractSlider::SliderSingleStepSub2
QAbstractSlider::SliderPageStepAdd3
QAbstractSlider::SliderPageStepSub4
QAbstractSlider::SliderToMinimum5
QAbstractSlider::SliderToMaximum6
QAbstractSlider::SliderMove7

枚举QAbstractSlider::SliderChange

常量
QAbstractSlider::SliderRangeChange0
QAbstractSlider::SliderOrientationChange1
QAbstractSlider::SliderStepsChange2
QAbstractSlider::SliderValueChange3

属性文档

invertedAppearance : bool

该属性表示滑块是否显示反转的值。

如果此属性为false(默认值),最小值和最大值将以继承小部件的经典位置显示。如果值为true,最小值和最大值将出现在其相反的位置。

备注:此属性对于滑块和旋转按钮最有意义。对于滚动条,滚动条子控件的外观取决于样式是否理解反转外观;大多数样式忽略此属性用于滚动条。

访问函数

boolinvertedAppearance() const
voidsetInvertedAppearance(bool)

invertedControls : bool

该属性表示滑块是否反转其滚轮和按键事件。

如果此属性为false,则使用鼠标滚轮“向上”和类似页面向上键将增加滑块的值,以接近最大值。否则,按页面向上键将移动值,使其接近滑块的最小值。

访问函数

boolinvertedControls() const
voidsetInvertedControls(bool)

maximum : int

该属性持有滑块的值最大值

设置此属性时,如果需要,将调整minimum,以确保范围有效。同时还将调整滑块的当前值,使其在新的范围内。

访问函数

intmaximum() const
voidsetMaximum(int)

minimum : int

该属性持有滑块的值最小值

设置此属性时,如果需要,最大值最大将进行调整,以确保范围保持有效。同时,滑块的当前值也将调整,使其位于新的范围内。

访问函数

intminimum() const
voidsetMinimum(int)

orientation : Qt::Orientation

此属性保存滑块的方位

方位必须是Qt::Vertical(默认)或Qt::Horizontal

访问函数

Qt::Orientationorientation() const
voidsetOrientation(Qt::Orientation)

pageStep : int

此属性保存页面步长。

抽象滑块提供的两个自然步长中的较大者,通常对应用户按下PageUp或PageDown。

访问函数

intpageStep() const
voidsetPageStep(int)

另请参阅singleStep

singleStep : int

此属性保存单步。

抽象滑块提供的两个自然步长中的较小者,通常对应用户按下箭头键。

如果属性在自动重复按键事件期间被修改,行为是未定义的。

访问函数

intsingleStep() const
voidsetSingleStep(int)

另请参阅pageStep

sliderDown : bool

此属性保存滑块是否被按下。

子类设置此属性,以便让抽象滑块知道跟踪是否有效。

更改滑块按下属性触发sliderPressed()和sliderReleased()信号。

访问函数

boolisSliderDown() const
voidsetSliderDown(bool)

sliderPosition : int

此属性保存当前滑块位置

如果启用了tracking(默认值),则此值与value相同。

访问函数

intsliderPosition() const
voidsetSliderPosition(int)

通知信号

voidsliderMoved(int value)

tracking : bool

此属性保存是否启用了滑块跟踪

如果启用了跟踪(默认值),则当拖动滑块时,滑块会发出valueChanged()信号。如果禁用跟踪,则仅在用户释放滑块时,滑块才会发出valueChanged()信号。

访问函数

boolhasTracking() const
voidsetTracking(bool enable)

另请参阅sliderDown

value : int

此属性保存滑块的当前值

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

更改值也将更改sliderPosition

访问函数

intvalue() const
voidsetValue(int)

通知信号

voidvalueChanged(int value)

成员函数文档

[显式] QAbstractSlider::QAbstractSlider(QWidget *parent = nullptr)

构建一个抽象滑块。

parent 参数被发送到 QWidget 构造函数。

默认minimum仅为 0,maximum 为 99,singleStep 大小为 1,pageStep 大小为 10,并且初始 value 为 0。

[虚 句柄] QAbstractSlider::~QAbstractSlider()

销毁滑块。

[信号] void QAbstractSlider::actionTriggered(int action)

当触发滑块动作 action 时,将发射此信号。动作包括 SliderSingleStepAddSliderSingleStepSubSliderPageStepAddSliderPageStepSubSliderToMinimumSliderToMaximumSliderMove

当发射信号时,根据动作已调整 sliderPosition,但 value 尚未传播(即尚未发射 valueChanged() 信号),并且未更新可视显示。因此,可以安全地在连接到此信号的处理程序槽中通过调用 setSliderPosition() 根据动作和滑块值自行调整任何操作。

另请参阅triggerAction()。

[覆盖 虚保护] void QAbstractSlider::changeEvent(QEvent *ev)

重新实现: QWidget::changeEvent(QEvent *event)。

[覆盖 虚保护] bool QAbstractSlider::event(QEvent *e)

重新实现: QWidget::event(QEvent *event)。

[覆盖 虚保护] void QAbstractSlider::keyPressEvent(QKeyEvent *ev)

重新实现: QWidget::keyPressEvent(QKeyEvent *event)。

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

当滑块范围更改时,将发射此信号,其中 min 是新的最小值,而 max 是新的最大值。

另请参阅minimummaximum

[受保护] QAbstractSlider::SliderAction QAbstractSlider::repeatAction() const

返回当前重复操作。

另请参阅setRepeatAction().

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

将滑块的 minimum 设置为 min,将其 maximum 设置为 max

如果 max 小于 min,则 min 成为唯一的合法值。

另请参阅minimummaximum

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

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

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

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

重新实现此虚函数以跟踪滑块更改,如 SliderRangeChangeSliderOrientationChangeSliderStepsChangeSliderValueChange。默认实现仅更新显示并忽略change参数。

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

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

即使开启了跟踪也会发出此信号。

注意:属性 sliderPosition 的通知信号。

另请参阅setTrackingvalueChangedisSliderDownsliderPressedsliderReleased

[signal] void QAbstractSlider::sliderPressed()

当用户用鼠标按下滑块或程序调用 setSliderDown(true) 时发出此信号。

另请参阅sliderReleasedsliderMovedisSliderDown

[signal] void QAbstractSlider::sliderReleased()

当用户用鼠标释放滑块或程序调用 setSliderDown(false) 时发出此信号。

另请参阅sliderPressedsliderMovedsliderDown

[覆盖虚保护] void QAbstractSlider::timerEvent(QTimerEvent *e)

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

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

触发滑块的 操作。可能的操作包括 SliderSingleStepAddSliderSingleStepSubSliderPageStepAddSliderPageStepSubSliderToMinimumSliderToMaximum,和 SliderMove

另请参阅 actionTriggered().

[信号] void QAbstractSlider::valueChanged(int value)

当滑块值发生变化时,发出此信号,其中新滑块 作为参数。

注意: 此信号为属性 value 的通知信号。

[覆盖虚保护] void QAbstractSlider::wheelEvent(QWheelEvent *e)

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

© 2024 The Qt Company Ltd. 本文档中的贡献著作版权所有。本文档在自由软件基金会的发布的 GNU自由文档许可证版本1.3 的条款下提供,如在此所述。Qt 和相应的徽标是芬兰和/或世界其他国家/地区的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。