QAbstractSlider 类
QAbstractSlider 类提供了一个范围之内的整数值。更多信息...
| 头文件 | #include <QAbstractSlider> | 
| CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) | 
| qmake | QT += widgets | 
| 继承 | QWidget | 
| 继承者 | 
公共类型
| 枚举 | 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) | 
受保护的类型
| 枚举 | 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 | 
详细说明
该类被设计成类似 QScrollBar,QSlider 和 QDial 等小部件的通用基类。
以下是该类的主要属性:
- value:QAbstractSlider 维护的有界整数。
- minimum:可能的最小值。
- maximum:可能的最大值。
- singleStep:抽象滑动条提供的两个自然步长中的较小者,通常对应用户按下箭头键。
- pageStep:抽象滑动条提供的两个自然步长中的较大者,通常对应用户按下 PageUp 或 PageDown。
- tracking:是否启用滑动条跟踪。
- 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()帮助子类和样式将屏幕坐标映射到逻辑范围值。
另请参阅QAbstractSpinBox、QSlider、QDial、QScrollBar和滑块示例。
成员类型文档
枚举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 | 
枚举QAbstractSlider::SliderChange
| 常量 | 值 | 
|---|---|
| QAbstractSlider::SliderRangeChange | 0 | 
| QAbstractSlider::SliderOrientationChange | 1 | 
| QAbstractSlider::SliderStepsChange | 2 | 
| QAbstractSlider::SliderValueChange | 3 | 
属性文档
invertedAppearance : bool
该属性表示滑块是否显示反转的值。
如果此属性为false(默认值),最小值和最大值将以继承小部件的经典位置显示。如果值为true,最小值和最大值将出现在其相反的位置。
备注:此属性对于滑块和旋转按钮最有意义。对于滚动条,滚动条子控件的外观取决于样式是否理解反转外观;大多数样式忽略此属性用于滚动条。
访问函数
| bool | invertedAppearance() const | 
| void | setInvertedAppearance(bool) | 
invertedControls : bool
该属性表示滑块是否反转其滚轮和按键事件。
如果此属性为false,则使用鼠标滚轮“向上”和类似页面向上键将增加滑块的值,以接近最大值。否则,按页面向上键将移动值,使其接近滑块的最小值。
访问函数
| bool | invertedControls() const | 
| void | setInvertedControls(bool) | 
maximum : int
该属性持有滑块的值最大值
设置此属性时,如果需要,将调整minimum,以确保范围有效。同时还将调整滑块的当前值,使其在新的范围内。
访问函数
| int | maximum() const | 
| void | setMaximum(int) | 
minimum : int
该属性持有滑块的值最小值
设置此属性时,如果需要,最大值最大将进行调整,以确保范围保持有效。同时,滑块的当前值也将调整,使其位于新的范围内。
访问函数
| int | minimum() const | 
| void | setMinimum(int) | 
orientation : Qt::Orientation
此属性保存滑块的方位
方位必须是Qt::Vertical(默认)或Qt::Horizontal。
访问函数
| Qt::Orientation | orientation() const | 
| void | setOrientation(Qt::Orientation) | 
pageStep : int
此属性保存页面步长。
抽象滑块提供的两个自然步长中的较大者,通常对应用户按下PageUp或PageDown。
访问函数
| int | pageStep() const | 
| void | setPageStep(int) | 
另请参阅singleStep。
singleStep : int
此属性保存单步。
抽象滑块提供的两个自然步长中的较小者,通常对应用户按下箭头键。
如果属性在自动重复按键事件期间被修改,行为是未定义的。
访问函数
| int | singleStep() const | 
| void | setSingleStep(int) | 
另请参阅pageStep。
sliderDown : bool
此属性保存滑块是否被按下。
子类设置此属性,以便让抽象滑块知道跟踪是否有效。
更改滑块按下属性触发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 为 0。
[虚 句柄] QAbstractSlider::~QAbstractSlider()
销毁滑块。
[信号] void QAbstractSlider::actionTriggered(int action)
当触发滑块动作 action 时,将发射此信号。动作包括 SliderSingleStepAdd、SliderSingleStepSub、SliderPageStepAdd、SliderPageStepSub、SliderToMinimum、SliderToMaximum 和 SliderMove。
当发射信号时,根据动作已调整 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 是新的最大值。
[受保护] QAbstractSlider::SliderAction QAbstractSlider::repeatAction() const
返回当前重复操作。
另请参阅setRepeatAction().
[slot] void QAbstractSlider::setRange(int min, int max)
将滑块的 minimum 设置为 min,将其 maximum 设置为 max。
如果 max 小于 min,则 min 成为唯一的合法值。
[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)
重新实现此虚函数以跟踪滑块更改,如 SliderRangeChange、SliderOrientationChange、SliderStepsChange 或 SliderValueChange。默认实现仅更新显示并忽略change参数。
[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。
[覆盖虚保护] void QAbstractSlider::timerEvent(QTimerEvent *e)
重新实现: QObject::timerEvent(QTimerEvent *event).
void QAbstractSlider::triggerAction(QAbstractSlider::SliderAction action)
触发滑块的 操作。可能的操作包括 SliderSingleStepAdd,SliderSingleStepSub,SliderPageStepAdd,SliderPageStepSub,SliderToMinimum,SliderToMaximum,和 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. 的商标。所有其他商标均为其各自所有者的财产。