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. 的商标。所有其他商标均为其各自所有者的财产。