边界规则 QML 类型
定义了对数值属性可设置值范围的限制。 更多...
导入语句 | import Qt.labs.animation |
属性
- currentOvershoot : qreal
- easing : 枚举
- enabled : bool
- maximum : qreal
- maximumOvershoot : qreal
- minimum : qreal
- minimumOvershoot : qreal
- overshootFilter : 枚举
- overshootScale : qreal
- peakOvershoot : qreal
- returnDuration : int
信号
方法
- bool returnToBounds()
详细描述
BoundaryRule 定义了特定属性可以有的值范围。当设置超出范围的值时,它会通过一个缓动曲线应用“阻力”。
例如,以下 BoundaryRule 防止 DragHandler 将 Rectangle 拖动得太远
import QtQuick import Qt.labs.animation Rectangle { id: root width: 170; height: 120 color: "green" DragHandler { id: dragHandler yAxis.minimum: -1000 xAxis.minimum: -1000 onActiveChanged: if (!active) xbr.returnToBounds(); } BoundaryRule on x { id: xbr minimum: -50 maximum: 100 minimumOvershoot: 40 maximumOvershoot: 40 } }
请注意,属性不能有多个已分配的边界规则。
另请参阅Qt Quick 中的动画和转场、行为示例、Qt Qml 和 Qt Quick 示例 - 指针处理器。
属性文档
currentOvershoot : qreal |
easing : 枚举 |
该属性保存了在超调模式下(当最小约束 minimum 或最大约束 maximum 被违反时,而值仍在相应的超调范围内)应应用的儿子曲线。
默认的缓动曲线是 QEasingCurve::OutQuad。
enabled : bool |
该属性保存了在跟踪的属性值变更时是否将强制执行规则。
默认情况下,BoundaryRule 是启用的。
maximum : qreal |
该属性保存了属性允许具有的最大未约束值。如果将该属性设置得更大,它将通过 easing 和 maximumOvershoot 被约束。
默认值为 1
。
maximumOvershoot : qreal |
minimum : qreal |
该属性保存了属性允许具有的最小未约束值。如果将该属性设置得更小,它将通过 easing 和 minimumOvershoot 被约束。
默认值为 0
。
minimumOvershoot : qreal |
overshootFilter : enumeration |
该属性指定将应用于拦截的属性值的聚合函数。
如果设置为 BoundaryRule.None
(默认),拦截的属性将持有在 currentOvershoot 限制之内的值。如果设置为 BoundaryRule.Peak
,拦截的属性将持有在 peakOvershoot 限制之内的值。
overshootScale : qreal |
该属性表示在超调条件下,缓动(easing)值的缩放量。例如,如果一个项目限制在某个限制之外移动不超过100像素,而用户(通过某些输入处理器)试图将其移动超出100像素,如果overshootScale设置为1,用户将成功移动:缓动曲线唯一的效果就是改变项目从超出0到超出100的移动速率。但如果设置为0.5,边界规则(BoundaryRule)将提供阻力,当用户尝试移动100像素时,项目只会移动50像素;而缓动曲线将调节移动速率,使其可能开始与用户的尝试移动同步,然后根据缓动曲线的形状减速。
默认值为0.5。
peakOvershoot : qreal |
该属性在调用returnToBounds()之前,存储了currentOvershoot遇到的最正或最负值。
当拦截的属性值已知会波动时,这非常有用,您希望找到并响应最大超调量,而不是波动。
另请参阅overshootFilter。
returnDuration : int |
该属性表示returnToBounds()将花费多少毫秒将目标属性返回到最近的边缘。如果设置为0,returnToBounds()将立即设置属性,而不是创建动画任务。
默认值为100毫秒。
信号文档
returnedToBounds() |
当currentOvershoot在违反maximum或minimum约束后返回到0时,会发出该信号。如果返回是动画的,则当动画完成时发出该信号。
注意:对应的事件处理器为onReturnedToBounds
。
另请参阅returnDuration和returnToBounds()。
方法文档
bool returnToBounds() |
返回值为截获的属性在minimum和maximum之间的值,以使得currentOvershoot和peakOvershoot都为零。如果returnDuration大于零,这将进行动画处理。
如果需要调整值,则返回true,如果已在范围内,则返回false。
另请参阅returnedToBounds。
© 2024 Qt公司。本文档中的文档贡献是各自所有者的版权。本文档受GNU自由文档许可证版本1.3的许可,由自由软件基金会发布。Qt及其相关徽标是芬兰和/或世界各地的Qt公司的商标。所有其他商标均为其各自所有者的财产。