SwipeView QML 类型

允许用户通过水平滑动进行页面导航。 更多...

导入语句import QtQuick.Controls
继承

Container

属性

  • horizontal : bool (自 QtQuick.Controls 2.3 (Qt 5.10) 开始)
  • interactive : bool (自 QtQuick.Controls 2.1 (Qt 5.8) 开始)
  • orientation : 枚举 (自 QtQuick.Controls 2.2 (Qt 5.9) 开始)
  • vertical : bool (自 QtQuick.Controls 2.3 (Qt 5.10) 开始)

附加属性

详细描述

SwipeView 提供了一个基于滑动的导航模式。

SwipeView 通过一系列页面填充。一次只显示一个页面。用户可以通过水平滑动在页面之间导航。请注意,SwipeView 本身是完全非视觉的。建议与 PageIndicator 结合使用,使用户能够获得多个页面的视觉提示。

SwipeView {
    id: view

    currentIndex: 1
    anchors.fill: parent

    Item {
        id: firstPage
    }
    Item {
        id: secondPage
    }
    Item {
        id: thirdPage
    }
}

PageIndicator {
    id: indicator

    count: view.count
    currentIndex: view.currentIndex

    anchors.bottom: view.bottom
    anchors.horizontalCenter: parent.horizontalCenter
}

如上图所示,SwipeView 通常通过在视图的子元素中定义静态页面集合来填充。也可以在运行时动态地 添加插入移动删除 页面。

当 SwipeView 与另一个容器,例如 TabBar 相结合时,需要在每个控制的 currentIndex 属性之间进行双向绑定。为此,为了避免中断绑定,请避免直接设置 currentIndex,而应使用 setCurrentIndex(),例如。有关更多信息,请参阅 管理当前索引

要执行在 currentIndex 发生变化时执行的操作,请使用 onCurrentIndexChanged 属性改变信号处理器

onCurrentIndexChanged: {
    print("currentIndex changed to", currentIndex)
    // ...
}

通常不建议向SwipeView添加过多的页面。然而,当页面的数量增长较大或单个页面相对复杂时,通过卸载用户当前无法触及的页面,可以释放资源。以下示例展示了如何使用Loader来同时实例化最多三个页面。

SwipeView {
    Repeater {
        model: 6
        Loader {
            active: SwipeView.isCurrentItem || SwipeView.isNextItem || SwipeView.isPreviousItem
            sourceComponent: Text {
                text: index
                Component.onCompleted: console.log("created:", index)
                Component.onDestruction: console.log("destroyed:", index)
            }
        }
    }
}

注意:SwipeView接管了视图内添加的项目的大小管理。不支持在项目上使用锚点,任何对widthheight的赋值都将被视图覆盖。请注意,这仅适用于项的根。指定宽度和高度,或为子项使用锚点按预期工作。

另请参阅:TabBarPageIndicator自定义SwipeView导航控件容器控件以及Qt Quick Controls 中的焦点管理

属性文档

horizontal : bool [只读,自QtQuick.Controls 2.3(Qt 5.10)起]

此属性表示SwipeView是否为水平布局。

此属性自QtQuick.Controls 2.3(Qt 5.10)起被引入。

另请参阅:orientation


interactive : bool [自QtQuick.Controls 2.1(Qt 5.8)起]

此属性描述用户是否可以与SwipeView交互。如果视图非交互式,则用户无法滑动。

默认值为true

此属性自QtQuick.Controls 2.1(Qt 5.8)起被引入。


orientation : 枚举 [自QtQuick.Controls 2.2(Qt 5.9)起]

此属性保存了方向。

可能值

常量描述
Qt.Horizontal水平(默认值)
Qt.Vertical垂直

此属性自QtQuick.Controls 2.2(Qt 5.9)起被引入。

另请参阅:horizontalvertical


vertical : bool [只读,自QtQuick.Controls 2.3(Qt 5.10)起]

此属性保存了SwipeView是否为垂直布局。

此属性自QtQuick.Controls 2.3(Qt 5.10)起被引入。

另请参阅:orientation


附加属性文档

SwipeView.index : int [只读]

此附加属性保存了SwipeView中每个子项的索引。

它附加到了SwipeView的每个子项上。


SwipeView.isCurrentItem : bool [只读]

如果此子项是当前项,则此附加属性为true

它附加到了SwipeView的每个子项上。


SwipeView.isNextItem : bool [只读,自QtQuick.Controls 2.1(Qt 5.8)起]

如果此子项是下一项,则此附加属性为true

它附加到了SwipeView的每个子项上。

此属性自QtQuick.Controls 2.1(Qt 5.8)起被引入。


SwipeView.isPreviousItem : bool [只读,自QtQuick.Controls 2.1(Qt 5.8)起]

如果此子项是上一项,则此附加属性为true

它附加到了SwipeView的每个子项上。

此属性自QtQuick.Controls 2.1(Qt 5.8)起被引入。


SwipeView.view : SwipeView [只读]

该附加属性保存管理此子项的视图。

它附加到了SwipeView的每个子项上。


© 2024 Qt公司有限公司。本文件中包含的文档贡献为各自所有者的版权。本文件的文档提供受自由软件基金会发布的GNU自由文档许可协议版本1.3条款约束。Qt以及相应的标志是芬兰及其它地区Qt公司有限公司的商标。所有其它商标均为各自所有者的财产。