本页内容

ScrollView QML Type

可滚动视图。更多...

Import Statement: import QtQuick.Controls
Inherits:

Pane

属性

详细说明

ScrollView 为用户定义的内容提供滚动功能。它既可以用来替换Flickable ,也可以用来装饰现有的 。

包含可滚动内容的滚动视图

第一个示例演示了 ScrollView 的最简单用法。

ScrollView {
    width: 200
    height: 200

    Label {
        text: "ABC"
        font.pixelSize: 224
    }
}

第二个示例演示了如何使用现有的Flickable ,即ListView 。

ScrollView {
    width: 200
    height: 200

    ListView {
        model: 20
        delegate: ItemDelegate {
            text: "Item " + index

            required property int index
        }
    }
}

注意:从 Qt-6.0开始, 如果不将 Flickable 作为子对象,ScrollView 会自动裁剪其内容。如果不需要这种行为,可以将自定义的 Flickable 设置为子对象,并显式控制该 Flickable 上的 `clip ` 属性。

尺寸设置

与 Flickable 类似,使用 ScrollView 时需要注意以下几点:

  • 如果 ScrollView 中仅包含一个项目,其内容大小将根据所含项目的隐式大小自动计算。但是,如果包含多个项目(或未提供隐式大小),则必须将 `contentWidth ` 和 `contentHeight ` 属性设置为所含项目的总大小。
  • 如果内容大小小于或等于 ScrollView 的大小,则无法滚动。
  • 若希望 ScrollView 仅进行垂直滚动,可将contentWidth 绑定到availableWidth (反之亦然,即 contentHeight 绑定到 )。这样,内容将在考虑填充区域和滚动条的情况下,水平方向上填满 ScrollView 内的所有可用空间。

滚动条

可以通过ScrollBar.horizontal 和ScrollBar.vertical 这两个附加属性访问并自定义水平和垂直滚动条。以下示例调整了滚动条策略,使水平滚动条始终关闭,而垂直滚动条始终开启。

ScrollView {
    // ...
    ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
    ScrollBar.vertical.policy: ScrollBar.AlwaysOn
}

触摸与鼠标交互

在触摸交互时,ScrollView 会启用轻扫功能,并使滚动条处于非交互状态。

当使用鼠标设备交互时,滑动操作将被禁用,且滚动条可交互。

可以通过将interactive 属性分别显式设置为true 或false ,来实现触摸时滚动条可交互,而使用鼠标设备交互时则不可交互。

ScrollView {
    // ...
    ScrollBar.horizontal.interactive: true
    ScrollBar.vertical.interactive: true
}

委托大小的变化

委托大小不一可能会导致ScrollBar 在向视图中加载新委托时“跳动”。因此,建议使用大小相同的委托。有关更多信息,请参阅Variable Delegate Size and Section Labels 。

另请参阅 ScrollBar 、ScrollIndicator 、 Qt Quick Controls 中的《自定义 ScrollView、容器控件和 焦点管理》。

属性文档

contentChildren : list<Item>

该属性保存内容子节点的列表。

该列表包含所有在 QML 中被声明为该视图子节点的项目。

注意:与 `contentData`不同 ,`contentChildren ` 不包含非视觉 QML 对象。

另请参阅 Item::children 和contentData 。

contentData : list<QtObject> [default]

该属性保存内容数据的列表。

该列表包含所有在 QML 中被声明为该视图子元素的对象。

注意:与 `contentChildren`不同 ,`contentData ` 确实包含非可视化 QML 对象。

另请参阅 Item::data 和contentChildren 。

effectiveScrollBarHeight : real [since 6.6]

该属性存储水平滚动条的有效高度。当滚动条可见时,该属性即为滚动条的当前高度。当滚动条不可见或其策略设置为QQuickScrollBar::AlwaysOff 时,该属性值为0 。

该属性在 Qt 6.6 中引入。

另请参阅 ScrollBar::policy 。

effectiveScrollBarWidth : real [since 6.6]

该属性存储垂直滚动条的有效宽度。当滚动条可见时,该属性即为滚动条的当前宽度。当滚动条不可见或其策略设置为QQuickScrollBar::AlwaysOff 时,该属性值为0 。

该属性在 Qt 6.6 中引入。

另请参阅 ScrollBar::policy 。

© 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.