滚动条 QML 类型
垂直或水平交互式滚动条。 更多信息...
导入语句 | import QtQuick.Controls |
继承 |
属性
- active : bool
- horizontal : bool
(自 QtQuick.Controls 2.3 (Qt 5.10) 起有效)
- interactive : bool
(自 QtQuick.Controls 2.2 (Qt 5.9) 起有效)
- minimumSize : real
(自 QtQuick.Controls 2.4 (Qt 5.11) 起有效)
- orientation : 枚举
- policy : 枚举
(自 QtQuick.Controls 2.2 (Qt 5.9) 起有效)
- position : real
- pressed : bool
- size : real
- snapMode : 枚举
(自 QtQuick.Controls 2.2 (Qt 5.9) 起有效)
- stepSize : real
- vertical : bool
(自 QtQuick.Controls 2.3 (Qt 5.10) 起有效)
- visualPosition : real
(自 QtQuick.Controls 2.4 (Qt 5.11) 起有效)
- visualSize : real
(自 QtQuick.Controls 2.4 (Qt 5.11) 起有效)
附加属性
- horizontal : ScrollBar
- vertical : ScrollBar
方法
详细描述
滚动条是一种交互式栏,可以用于滚动到特定位置。滚动条可以是垂直的或水平居中,可以附加到任何可滚动的组件,例如ListView和GridView,还可以与ScrollView一起使用。
Flickable { // ... ScrollBar.vertical: ScrollBar { } }
将滚动条附加到Flickable
当滚动条垂直或水平附加到Flickable上时,其几何形状和下列属性会自动设置并更新
附加的滚动条会将其自身重新定位到目标Flickable。垂直附加的滚动条会调整其大小以匹配Flickable的高度,并根据布局方向将其定位在其两侧。水平附加的滚动条会调整其大小以匹配Flickable的宽度,并位于其底部。可以通过指定另一个父级来禁用自动几何形状管理。例如,如果滚动条需要放置在剪裁Flickable之外,这会很有用。以下示例演示了这一点:
Flickable { id: flickable clip: true // ... ScrollBar.vertical: ScrollBar { parent: flickable.parent anchors.top: flickable.top anchors.left: flickable.right anchors.bottom: flickable.bottom } }
请注意,滚动条不会过滤其附加的Flickable的关键事件。以下示例说明了如何使用上下键实现滚动
Flickable { focus: true Keys.onUpPressed: scrollBar.decrease() Keys.onDownPressed: scrollBar.increase() ScrollBar.vertical: ScrollBar { id: scrollBar } }
绑定水平和垂直滚动条的活动状态
默认情况下,水平和垂直滚动条不共享活动状态。为了在向任何方向滚动时保持两个条都可见,可以建立活动状态之间的双向绑定,如下例所示
Flickable { anchors.fill: parent contentWidth: parent.width * 2 contentHeight: parent.height * 2 ScrollBar.horizontal: ScrollBar { id: hbar; active: vbar.active } ScrollBar.vertical: ScrollBar { id: vbar; active: hbar.active } }
非附加滚动条
可以在不使用附加属性API的情况下创建滚动条的实例。当附加滚动条的行为不足以满足需求或未使用Flickable时,这非常有用。在以下示例中,使用水平和垂直滚动条来滚动文本,而不使用Flickable
Rectangle { id: frame clip: true width: 160 height: 160 border.color: "black" anchors.centerIn: parent Text { id: content text: "ABC" font.pixelSize: 160 x: -hbar.position * width y: -vbar.position * height } ScrollBar { id: vbar hoverEnabled: true active: hovered || pressed orientation: Qt.Vertical size: frame.height / content.height anchors.top: parent.top anchors.right: parent.right anchors.bottom: parent.bottom } ScrollBar { id: hbar hoverEnabled: true active: hovered || pressed orientation: Qt.Horizontal size: frame.width / content.width anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom } }
在使用非附加滚动条时,必须手动执行以下操作:
另请参阅 ScrollIndicator、ScrollView、自定义滚动条和指示控件。
属性文档
horizontal : bool |
interactive : bool |
该属性表示滚动条是否可交互。默认值是 true
。
非交互式的滚动条在外观和行为上与 ScrollIndicator 相似。此属性可以用于在交互式和非交互式滚动条之间切换,从而实现鼠标和触摸操作系统界面。
该属性从 QtQuick.Controls 2.2 (Qt 5.9) 开始引入。
minimumSize : real |
该属性表示滚动条的最小尺寸,按 0.0 - 1.0
缩放。
该属性从 QtQuick.Controls 2.4 (Qt 5.11) 开始引入。
另请参阅size、visualSize 和 visualPosition。
orientation : enumeration |
该属性表示滚动条的朝向。
可能值
常量 | 描述 |
---|---|
Qt.Horizontal | 水平方向 |
Qt.Vertical | 垂直方向 (默认) |
该属性在滚动条附加到可摇动控件上时自动设置。
另请参阅horizontal 和 vertical。
policy : enumeration |
该属性表示滚动条的策略。默认策略是 ScrollBar.AsNeeded
。
可能值
常量 | 描述 |
---|---|
ScrollBar.AsNeeded | 只有当内容过大而无法适应时,滚动条才会显示。 |
ScrollBar.AlwaysOff | 滚动条从不显示。 |
ScrollBar.AlwaysOn | 滚动条始终显示。 |
以下示例显示如何使垂直滚动条始终可见:
Flickable { contentHeight: 2000 ScrollBar.vertical: ScrollBar { policy: ScrollBar.AlwaysOn } }
样式可能使用此属性与 active 属性结合使用,以实现暂时性滚动条。在最后的交互事件(悬停或按下)后,暂时性滚动条会立刻隐藏。这通常通过将滚动条的不透明度进行动画处理来完成。要通过内容大小与视图大小比较来覆盖此行为,可以将策略设置为 ScrollBar.AlwaysOn
或 ScrollBar.AlwaysOff
。例如,对于垂直的 ListView
policy: listView.contentHeight > listView.height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff
该属性从 QtQuick.Controls 2.2 (Qt 5.9) 开始引入。
position : real |
该属性表示滚动条的位置,按 0.0 - 1.0
缩放。
最大的有效滚动条位置是 (1.0 - size)
。这为最常见的场景提供了正确的行为,即当滚动条移到末尾时,文档的末尾会出现在连接的可摇动控件的可见区域的末端。
该属性在滚动条附加到可摇动控件上时自动设置。
pressed : bool |
此属性表示是否按下了滚动条。
size : real |
此属性表示滚动条的尺寸,已缩放至 0.0 - 1.0
。
该属性在滚动条附加到可摇动控件上时自动设置。
snapMode : enumeration |
vertical : bool |
visualPosition : real |
此属性表示滚动条的视觉位置,可能受到 minimum size 的限制。
该属性从 QtQuick.Controls 2.4 (Qt 5.11) 开始引入。
另请参阅 position 和 minimumSize。
visualSize : real |
此属性表示滚动条的视觉大小,可能受到 minimum size 的限制。
该属性从 QtQuick.Controls 2.4 (Qt 5.11) 开始引入。
另请参阅 size 和 minimumSize。
附加属性文档
ScrollBar.horizontal : ScrollBar |
ScrollBar.vertical : ScrollBar |
方法文档
© 2024 The Qt Company Ltd. 本文档中的内容贡献者为各自的版权所有者。本文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 许可的。Qt 和相关标志为 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。