RangeSlider QML Type
用于通过沿轨道滑动两个控件来选择一组值。更多...
| Import Statement: | import QtQuick.Controls |
| Inherits: |
属性
- crossingEnabled : bool
(since QtQuick.Controls 6.12) - effectiveFirstValue : real
(since QtQuick.Controls 6.12) - effectiveSecondValue : real
(since QtQuick.Controls 6.12) - first
- first.handle : Item
- first.hovered : bool
- first.implicitHandleHeight : real
- first.implicitHandleWidth : real
- first.position : real
- first.pressed : bool
- first.value : real
- first.visualPosition : real
- from : real
- handlesCrossed : bool
(since QtQuick.Controls 6.12) - horizontal : bool
(since QtQuick.Controls 2.3 (Qt 5.10)) - live : bool
(since QtQuick.Controls 2.2 (Qt 5.9)) - orientation : enumeration
- second
- second.handle : Item
- second.hovered : bool
- second.implicitHandleHeight : real
- second.implicitHandleWidth : real
- second.position : real
- second.pressed : bool
- second.value : real
- second.visualPosition : real
- snapMode : enumeration
- stepSize : real
- to : real
- touchDragThreshold : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - vertical : bool
(since QtQuick.Controls 2.3 (Qt 5.10))
信号
- void first.moved()
(since QtQuick.Controls 2.5) - void handlesCrossedChanged()
(since QtQuick.Controls 6.12) - void second.moved()
(since QtQuick.Controls 2.5)
方法
- void first.decrease()
- void first.increase()
- void second.decrease()
- void second.increase()
- void setValues(real firstValue, real secondValue)
- real valueAt(real position)
(since QtQuick.Controls 2.5 (Qt 5.12))
详细说明
RangeSlider 用于通过沿轨道滑动每个滑块,选择由两个值指定的范围。
在下面的示例中,设置了自定义的from 和to 值,并设置了first 和second 控件的初始位置:
RangeSlider {
from: 1
to: 100
first.value: 25
second.value: 75
}若要在特定滑块的值发生变化时执行某项操作,请使用以下语法:
first.onMoved: console.log("first.value changed to " + first.value)first.position 和second.position 属性以控件大小的分数形式表示,范围为0.0 - 1.0 。first.visualPosition 和second.visualPosition 属性与此相同,但在从右到左的应用程序中,它们的顺序是相反的。visualPosition 属性在为 RangeSlider 设置样式时,用于定位滑块控件。在上例中,first.visualPosition 在从左到右的应用程序中将变为0.24 ,而在从右到左的应用程序中将变为0.76 。
有关允许用户选择单一值的滑块,请参阅Slider 。
另请参阅 Qt Quick Controls 中的《自定义 RangeSlider、输入控件和 焦点管理》。
属性文档
crossingEnabled : bool [since QtQuick.Controls 6.12]
此属性用于确定滑块控点是否可以相互交叉。
当设置为“false ”(默认值)时,第一个滑块控件无法移动到第二个控件之后,反之亦然。其取值受以下约束:对于常规范围,first.value <=second.value ;对于反转范围,first.value >=second.value 。
使用handlesCrossed 属性来检测控点是否已互换位置。
默认值为false 。
当交叉功能被禁用时,如果手柄曾发生交叉,则手柄的值将被互换。
该属性在 QtQuick.Controls 6.12 中引入。
另请参阅 handlesCrossed 、first.value 和second.value 。
effectiveFirstValue : real [read-only, since QtQuick.Controls 6.12]
该属性保存最初作为“第一个”句柄创建的句柄的值,无论句柄是否已发生交叉。
当crossingEnabled 为false 或控件尚未发生重叠时,该值等于first.value 。当控件发生重叠时,该值表示位于视觉“第一”位置(水平方向最左侧,垂直方向最下方)的控件的值。
该属性在 QtQuick.Controls 6.12 中引入。
另请参阅 effectiveSecondValue 、first.value 、handlesCrossed 以及crossingEnabled 。
effectiveSecondValue : real [read-only, since QtQuick.Controls 6.12]
该属性保存位于视觉上“第二”位置(水平方向最右侧,垂直方向最顶端)的控点值。
当crossingEnabled 为false 或控点未发生交叉时,该值等于second.value 。当控点发生交叉时,该值表示位于视觉“第二”位置(水平方向最右侧,垂直方向最顶端)的控点的值。
该属性首次引入于 QtQuick.Controls 6.12。
另请参阅 effectiveFirstValue 、second.value 、handlesCrossed 以及crossingEnabled 。
first group
first.handle : Item
first.hovered : bool
first.implicitHandleHeight : real
first.implicitHandleWidth : real
first.position : real
first.pressed : bool
first.value : real
first.visualPosition : real
| 属性 | 描述 |
|---|---|
| 值 | 该属性存储范围from -to 内第一个句柄的值。如果from 大于to ,则第一个句柄的值必须大于第二个句柄的值,反之亦然。 默认值为 |
| handle | 此属性包含第一个句柄项。 |
| visualPosition | 此属性保存第一个控点的视觉位置。 该位置以控件大小的分数形式表示,范围为 |
| position | 此属性保存第一个控件的逻辑位置。 该位置以控件尺寸的分数形式表示,范围为 |
| pressed | 该属性表示第一个控点是否被触摸、鼠标或键盘按键按下。 |
| hovered该属性表示第一个控点是否处于悬停状态。 | 该属性表示第一个控点是否处于悬停状态。该属性在QtQuick.Controls 2.1 版本中引入。 |
| implicitHandleWidth | 该属性表示第一个控点的隐式宽度。该属性自QtQuick.Controls 2.5起引入。 |
| implicitHandleHeight | 该属性表示第一个控制点的隐式高度。该属性在QtQuick.Controls 2.5 中引入。 |
另请参阅 first.moved()、first.increase() 以及first.decrease()。
from : real
该属性存储范围的起始值。默认值为0.0 。
另请参阅 to 、first.value 以及second.value 。
handlesCrossed : bool [read-only, since QtQuick.Controls 6.12]
该属性用于表示把手之间是否发生交叉。
仅当crossingEnabled 的值为true 时,该属性才有效。当控件交叉时,它们的内部角色会互换,以保持“第一”和“第二”分别作为下限和上限的语义含义。
该属性可用于在控点处于交叉状态时提供视觉反馈。
该属性在 QtQuick.Controls 6.12 中引入。
另请参阅 crossingEnabled 和handlesCrossedChanged()。
horizontal : bool [read-only, since QtQuick.Controls 2.3 (Qt 5.10)]
该属性用于指定滑块是否为水平滑块。
该属性在 QtQuick.Controls 2.3(Qt 5.10)中引入。
另请参阅 orientation 。
live : bool [since QtQuick.Controls 2.2 (Qt 5.9)]
该属性用于指定在拖动相应控件时,滑块是否为first.value 和second.value 属性提供实时更新。
默认值为true 。
该属性首次引入于 QtQuick.Controls 2.2(Qt 5.9)。
另请参阅 first.value 和second.value 。
orientation : enumeration
该属性用于存储方向。
可能的取值:
| 常量 | 描述 |
|---|---|
Qt.Horizontal | 水平(默认) |
Qt.Vertical | 垂直 |
另请参阅 horizontal 和vertical 。
second group
second.handle : Item
second.hovered : bool
second.implicitHandleHeight : real
second.implicitHandleWidth : real
second.position : real
second.pressed : bool
second.value : real
second.visualPosition : real
| 属性 | 描述 |
|---|---|
| 值 | 该属性存储第二个句柄的值,其取值范围为from -to 。如果from 大于to ,则第一个句柄的值必须大于第二个句柄的值,反之亦然。 默认值为 |
| handle | 此属性保存第二个句柄项。 |
| visualPosition | 此属性保存第二个控制柄的视觉位置。 该位置以控件大小的分数形式表示,范围为 |
| position | 此属性存储第二个控点的逻辑位置。 该位置以控件尺寸的分数形式表示,范围为 |
| pressed | 该属性表示第二个控点是否被触摸、鼠标或键盘按键按下。 |
| hovered | 该属性表示第二个控点是否处于悬停状态。该属性在QtQuick.Controls 2.1 版本中引入。 |
| implicitHandleWidth | 该属性表示第二个控点的隐式宽度。该属性自QtQuick.Controls 2.5起引入。 |
| implicitHandleHeight | 该属性表示第二个控点的隐式高度。该属性于QtQuick.Controls 2.5 版中引入。 |
另请参阅 second.moved()、second.increase() 和second.decrease()。
snapMode : enumeration
此属性用于设置对齐模式。
对齐模式决定了滑块控件在stepSize 中的行为方式。
可能的取值:
| 常量 | 描述 |
|---|---|
RangeSlider.NoSnap | 滑块不进行对齐(默认)。 |
RangeSlider.SnapAlways | 在拖动控点时,滑块会进行对齐。 |
RangeSlider.SnapOnRelease | 滑块在拖动过程中不进行对齐,仅在松开控件后才进行对齐。 |
有关各种模式的直观说明,请参阅Slider 上的snapMode 文档。
另请参阅 stepSize 。
stepSize : real
该属性用于指定步长。默认值为0.0 。
另请参阅 snapMode 、first.increase() 和first.decrease()。
to : real
该属性存储范围的结束值。默认值为1.0 。
另请参阅 from 、first.value 以及second.value 。
touchDragThreshold : real [since QtQuick.Controls 2.5 (Qt 5.12)]
该属性存储触发触摸拖动事件的阈值(以逻辑像素为单位)。鼠标拖动阈值不受此影响。默认值为Application.styleHints.startDragDistance 。
该属性在 QtQuick.Controls 2.5(Qt 5.12)中引入。
另请参阅 QStyleHints 。
vertical : bool [read-only, since QtQuick.Controls 2.3 (Qt 5.10)]
该属性用于表示滑块是否为垂直的。
该属性在 QtQuick.Controls 2.3(Qt 5.10)中引入。
另请参阅 orientation 。
信号文档
当用户通过触摸、鼠标或键盘交互式地移动了第一个或第二个控点时,会触发此信号。
这些信号是在 QtQuick.Controls 2.5 中引入的。
[since QtQuick.Controls 6.12] void handlesCrossedChanged()
当句柄相互交叉时,会发出此信号,并更改handlesCrossed 属性。
注意: 相应的处理程序 是onHandlesCrossedChanged 。
该信号在 QtQuick.Controls 6.12 中引入。
另请参阅 crossingEnabled 。
方法文档
void first.decrease()
将句柄的值减去stepSize ;如果未定义stepSize ,则减去0.1 。
另请参阅 first 。
void first.increase()
将句柄的值增加stepSize ,若未定义stepSize ,则增加0.1 。
另请参见 first 。
void second.decrease()
将句柄的值减去stepSize ;如果未定义stepSize ,则减去0.1 。
另请参阅 second 。
void second.increase()
将句柄的值增加stepSize ;如果未定义stepSize ,则增加0.1 。
另请参阅 second 。
void setValues(real firstValue, real secondValue)
使用给定的参数设置first.value 和second.value 。
如果to 大于from ,且firstValue 大于secondValue ,则 firstValue 将被限制为 secondValue。
如果from 大于to ,且 secondValue 大于 firstValue,则 secondValue 将被限制为 firstValue。
在控制完成后,可能需要使用此函数来设置第一个和第二个值,因为 firstValue 和 secondValue 之间存在循环依赖关系,这可能会导致被赋值的数值相互限制。
另请参阅 stepSize 。
[since QtQuick.Controls 2.5 (Qt 5.12)] real valueAt(real position)
返回给定position 的值。
该方法于 QtQuick.Controls 2.5(Qt 5.12)中引入。
另请参阅 first.value 、second.value 、first.position 、second.position 以及live 。
© 2026 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.