滚动指示器 QML 类型

垂直或水平非交互式滚动指示器。 更多...

导入语句import QtQuick.Controls
继承

Control

属性

附加属性

详细介绍

ScrollIndicator 是一个非交互式指示器,用于指示当前的滚动位置。滚动指示器可以是垂直或水平,并且可以附加到任何 Flickable,例如 ListView 和 GridView。

Flickable {
    // ...
    ScrollIndicator.vertical: ScrollIndicator { }
}

将 ScrollIndicator 附加到 Flickable

注意:当 ScrollIndicator 附加到 Flickable 的垂直或水平方向时,其几何形状和以下属性将自动设置和更新

附加的ScrollIndicator会重新绑定自己的父对象为目标Flickable。竖直绑定的ScrollIndicator会调整自己的大小以适应Flickable的高度,并根据布局方向将其定位在其一侧。水平绑定的ScrollIndicator会调整自己以适应Flickable的宽度,并将其定位在底部。可以通过指定附加ScrollIndicator的另一个父对象来禁用自动几何管理。例如,如果ScrollIndicator需要放在剪影Flickable之外,这将是很有用的。下面这个示例展示了这一点。

Flickable {
    id: flickable
    clip: true
    // ...
    ScrollIndicator.vertical: ScrollIndicator {
        parent: flickable.parent
        anchors.top: flickable.top
        anchors.left: flickable.right
        anchors.bottom: flickable.bottom
    }
}

绑定水平和垂直ScrollIndicator的活动状态

默认情况下,水平和垂直ScrollIndicator不共享活动状态。为了在滚动任一方向时保持两个指示器都可见,可按照以下示例建立活动状态之间的双向绑定。

Flickable {
    anchors.fill: parent

    contentWidth: parent.width * 2
    contentHeight: parent.height * 2

    ScrollIndicator.horizontal: ScrollIndicator { id: hbar; active: vbar.active }
    ScrollIndicator.vertical: ScrollIndicator { id: vbar; active: hbar.active }
}

非附加ScrollIndicator

可以在不使用附加属性API的情况下创建ScrollIndicator实例。这在附加ScrollIndicator的行为不足以满足需求或未使用Flickable时很有用。在以下示例中,使用水平和垂直ScrollIndicator来指示用户已滚动文本的距离(使用MouseArea代替Flickable)。

Rectangle {
    id: frame
    clip: true
    width: 160
    height: 160
    border.color: "black"
    anchors.centerIn: parent

    Text {
        id: content
        text: "ABC"
        font.pixelSize: 169

        MouseArea {
            id: mouseArea
            drag.target: content
            drag.minimumX: frame.width - width
            drag.minimumY: frame.height - height
            drag.maximumX: 0
            drag.maximumY: 0
            anchors.fill: content
        }
    }

    ScrollIndicator {
        id: verticalIndicator
        active: mouseArea.pressed
        orientation: Qt.Vertical
        size: frame.height / content.height
        position: -content.y / content.height
        anchors { top: parent.top; right: parent.right; bottom: parent.bottom }
    }

    ScrollIndicator {
        id: horizontalIndicator
        active: mouseArea.pressed
        orientation: Qt.Horizontal
        size: frame.width / content.width
        position: -content.x / content.width
        anchors { left: parent.left; right: parent.right; bottom: parent.bottom }
    }
}

另请参阅ScrollBar自定义ScrollIndicatorIndicator控件

属性文档

active : bool

此属性表示指示器是否活动状态,即附加的Flickable正在移动

在滚动任一方向时,可以同时保持水平和垂直指示器可见

在ScrollIndicator附加到firkbable时,此属性会自动设置。


horizontal : bool [read-only, since QtQuick.Controls 2.3 (Qt 5.10)]

此属性表示ScrollIndicator是否为水平方向。

该属性自QtQuick.Controls 2.3(Qt 5.10)版本开始引入。

另请参阅orientation


minimumSize : real [since QtQuick.Controls 2.4 (Qt 5.11)]

此属性表示指示器的最小尺寸,以比例尺0.0 - 1.0缩放。

该属性自QtQuick.Controls 2.4(Qt 5.11)版本开始引入。

另请参阅sizevisualSizevisualPosition


orientation : enumeration

此属性表示指示器的方向。

可能的值

常数描述
Qt.Horizontal水平方向
Qt.Vertical垂直方向(默认)

在ScrollIndicator附加到firkbable时,此属性会自动设置。

另请参阅horizontalvertical


position : real

此属性表示指示器的位置,以比例尺0.0 - 1.0缩放。

在ScrollIndicator附加到firkbable时,此属性会自动设置。

另请参阅Flickable::visibleAreavisualPosition


大小 : 实数

此属性表示指标的大小,按比例缩放为 0.0 - 1.0

在ScrollIndicator附加到firkbable时,此属性会自动设置。

另请参阅 Flickable::visibleAreaminimumSizevisualSize


vertical : 布尔值 [只读,自 QtQuick.Controls 2.3 (Qt 5.10) 起适用]

此属性表示滚动指标是否为垂直。

该属性自QtQuick.Controls 2.3(Qt 5.10)版本开始引入。

另请参阅orientation


visualPosition : 实数 [自 QtQuick.Controls 2.4 (Qt 5.11) 起适用]

此属性表示指标的有效视觉位置,可能受到 最小尺寸 的限制。

该属性自QtQuick.Controls 2.4(Qt 5.11)版本开始引入。

另请参阅 positionminimumSize


visualSize : 实数 [自 QtQuick.Controls 2.4 (Qt 5.11) 起适用]

此属性表示指标的有效视觉大小,可能受到 最小尺寸 的限制。

该属性自QtQuick.Controls 2.4(Qt 5.11)版本开始引入。

另请参阅 sizeminimumSize


附加属性文档

ScrollIndicator.horizontal : ScrollIndicator

此属性将水平滚动指标附加到 Flickable

Flickable {
    contentWidth: 2000
    ScrollIndicator.horizontal: ScrollIndicator { }
}

另请参阅 将 ScrollIndicator 附加到 Flickable


ScrollIndicator.vertical : ScrollIndicator

此属性将垂直滚动指标附加到 Flickable

Flickable {
    contentHeight: 2000
    ScrollIndicator.vertical: ScrollIndicator { }
}

另请参阅 将 ScrollIndicator 附加到 Flickable


© 2024 The Qt Company Ltd. 本文档中包含的贡献文档的版权归其所有者所有。本文档是在自由软件基金会发布的 GNU 自由文档许可证版本 1.3 条款下提供的。Qt 和相应的标志是 The Qt Company Ltd. 在芬兰和其他国家的商标。所有其他商标均为其各自所有者的财产。