QAbstractSlider Class
QAbstractSlider 类提供了一个范围内的整数值。更多
Header: | #include <QAbstractSlider> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
继承: | QWidget |
继承于 |
公共类型
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 |
详细说明
该类被设计为QScrollBar 、QSlider 和QDial 等部件的通用超类。
以下是该类的主要属性:
- value:QAbstractSlider 维护的有界整数。
- minimum:可能的最低值。
- maximum:可能的最高值。
- singleStep:抽象滑块提供的两个自然步骤中的较小步骤,通常相当于用户按下箭头键。
- pageStep:抽象滑块提供的两个自然级数中的较大级数,通常相当于用户按 PageUp 或 PageDown 键。
- tracking:是否启用滑块跟踪。
- sliderPosition:滑块的当前位置。如果启用tracking (默认),则与value 相同。
Unity (1) 可以看作是第三个步长。setValue() 可让您将当前值设置为允许范围内的任意整数,而不仅仅是n 的整数值minimum() +n*singleStep() 。有些窗口小部件可能允许用户设置任意值;其他窗口小部件可能只提供singleStep() 或pageStep() 的倍数。
QAbstractSlider 会发出一系列信号:
信号 | 当 |
---|---|
valueChanged() | 值发生变化时发出的信号。tracking 决定是否在用户交互时发出该信号。 |
sliderPressed() | 用户开始拖动滑块。 |
sliderMoved() | 用户拖动滑块。 |
sliderReleased() | 用户释放滑块。 |
actionTriggered() | 触发了滑块操作。 |
rangeChanged() | 范围已更改。 |
QAbstractSlider 提供了一个虚拟的sliderChange() 函数,非常适合用于更新滑块的屏幕表示。通过调用triggerAction() ,子类可以触发滑块操作。两个辅助函数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
,则滚动鼠标滚轮 "向上 "和使用翻页键等按键将使滑块的值向最大值移动。否则,按向上翻页键将使滑块的值向最小值移动。
访问功能:
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
该属性用于保存页面步长。
这是抽象滑块提供的两个自然步长中较大的一个,通常对应于用户按 PageUp 或 PageDown 键。
访问功能:
int | pageStep() const |
void | setPageStep(int) |
另请参阅 singleStep 。
singleStep : int
该属性表示单步。
这是抽象滑块提供的两个自然步长中较小的一个,通常对应于用户按下的方向键。
如果在自动重复按键事件中修改了该属性,则行为未定义。
访问函数:
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) |
Notifier 信号:
void | valueChanged(int value) |
成员函数文档
[explicit]
QAbstractSlider::QAbstractSlider(QWidget *parent = nullptr)
构造抽象滑块。
parent 参数被发送到QWidget 构造函数。
minimum 默认为 0,maximum 默认为 99,singleStep 大小为 1,pageStep 大小为 10,初始value 为 0。
[virtual noexcept]
QAbstractSlider::~QAbstractSlider()
摧毁滑块。
[signal]
void QAbstractSlider::actionTriggered(int action)
该信号在触发滑块操作action 时发出。操作包括SliderSingleStepAdd,SliderSingleStepSub,SliderPageStepAdd,SliderPageStepSub,SliderToMinimum,SliderToMaximum 和SliderMove 。
信号发出时,sliderPosition 已根据操作进行了调整,但value 尚未传播(即valueChanged() 信号尚未发出),可视化显示也未更新。因此,在与该信号连接的槽中,您可以根据操作和滑块的值,通过调用setSliderPosition() 来调整任何操作。
另请参见 triggerAction().
[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).
[signal]
void QAbstractSlider::rangeChanged(int min, int max)
当滑块范围发生变化时会发出该信号,min 为新的最小值,max 为新的最大值。
[protected]
QAbstractSlider::SliderAction QAbstractSlider::repeatAction() const
返回当前的重复操作。
另请参阅 setRepeatAction().
[slot]
void QAbstractSlider::setRange(int min, int max)
将滑块的最小值设置为min ,最大值设置为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 为真且滑块移动时,会发出该信号。这通常发生在用户拖动滑块时。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 。
[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() 。
[signal]
void QAbstractSlider::valueChanged(int value)
该信号在滑块值发生变化时发出,参数为新的滑块value 。
注: 属性value 的通知信号。
[override virtual protected]
void QAbstractSlider::wheelEvent(QWheelEvent *e)
重实现:QWidget::wheelEvent(QWheelEvent *event).
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.