Flow QML Type

并排定位其子节点,必要时进行包装。更多

Import Statement: import QtQuick
Inherits:

Item

属性

信号

方法

详细说明

Flow 项目像页面上的文字一样定位其子项目,将它们包装起来以创建行或列项目。

下面是一个包含各种Text 项目的 Flow:

    Flow {
        anchors.fill: parent
        anchors.margins: 4
        spacing: 10

        Text { text: "Text"; font.pixelSize: 40 }
        Text { text: "items"; font.pixelSize: 40 }
        Text { text: "flowing"; font.pixelSize: 40 }
        Text { text: "inside"; font.pixelSize: 40 }
        Text { text: "a"; font.pixelSize: 40 }
        Text { text: "Flow"; font.pixelSize: 40 }
        Text { text: "item"; font.pixelSize: 40 }
    }

Flow 项目会自动并排定位子Text 项目,并根据需要对其进行包装:

如果 Flow 中的项目不是visible ,或者其宽度或高度为 0,则该项目将无法布局,在 Flow 中也不可见。此外,由于 Flow 会自动定位其子项,因此 Flow 中的子项目不应设置其xy 位置,也不应使用anchor 属性锚定自己。

有关使用 Flow 和其他相关定位器类型的更多信息,请参阅项目定位器

另请参阅 Column,Row,Grid,PositionerQt Quick 示例 - 定位器

属性文档

bottomPadding : real

leftPadding : real

padding : real

rightPadding : real

topPadding : real

这些属性包含内容周围的填充。


add : Transition

此属性为添加到此定位器的项目所要运行的转换。对于定位器,这适用于

  • 在定位器创建后作为定位器的子项创建或重新赋予的项目
  • Item::visible 属性从 false 变为 true 并因此现在可见的子项目

过渡可以使用ViewTransition 属性访问有关正在添加的项目的更多详细信息。有关使用这些转换的更多详情和示例,请参阅ViewTransition 文档。

注意: 此转换不会应用于创建时已是定位器一部分的项目。在这种情况下,将应用populate 过渡。

另请参阅 populate,ViewTransition, 和Qt Quick 示例 - 定位器


effectiveLayoutDirection : enumeration [read-only]

该属性用于保存流的有效布局方向。

在本地布局中使用附加属性LayoutMirroring::enabled 时,网格定位器的可视布局方向将被镜像。但是,属性layoutDirection 将保持不变。

另请参阅 Flow::layoutDirectionLayoutMirroring


flow : enumeration

该属性表示布局的流向。

可能的值有

  • Flow.LeftToRight(默认)- 项目根据layoutDirection 相邻定位,直到超过 Flow 的宽度,然后换行。
  • Flow.TopToBottom(从上到下)- 项目从上到下相邻定位,直到超过 Flow 的高度,然后封装到下一列。

layoutDirection : enumeration

该属性保留布局的布局方向。

可能的值有

  • Qt.LeftToRight(默认)- 项目从上到下、从左到右定位。流动方向取决于Flow::flow 属性。
  • Qt.RightToLeft - 项目从上到下、从右到左定位。流动方向取决于Flow::flow 属性。

另请参阅 Grid::layoutDirectionRow::layoutDirection


move : Transition

Qt.RightToLeft - 项目从上至下和从右至左定位。对于定位器,这适用于

  • 由于在定位器中添加、移除或重新排列其他项目而移动的子项目
  • 由于定位器中其他项目的大小调整而重新定位的子项目

过渡可以使用ViewTransition 属性来访问有关被移动项目的更多详细信息。但需要注意的是,对于此移动过渡,ViewTransition.targetIndexes 和ViewTransition.targetItems 列表只有在定位器中添加其他项目触发此过渡时才会被设置;在其他情况下,这些列表将为空。有关使用这些转换的更多详情和示例,请参阅ViewTransition 文档。

另请参阅 add,populate,ViewTransitionQt Quick 示例 - 定位器


populate : Transition

此属性用于保存在创建定位器时作为其一部分的项目的过渡。过渡在定位器首次创建时运行。

过渡可以使用ViewTransition 属性来访问有关正在添加的项目的更多详细信息。有关使用这些转换的更多详情和示例,请参阅ViewTransition 文档。

另请参阅 addViewTransitionQt Quick 示例 - 定位器


spacing : real

spacing 是每个相邻项目之间留空的像素数,默认为 0。

另请参阅 Grid::spacing


信号文档

positioningComplete()

定位完成后会发出此信号。

注: 相应的处理程序是onPositioningComplete


方法文档

forceLayout()

Flow 通常每帧定位其子节点一次。这意味着在脚本块内,底层子对象有可能已经发生变化,但 Flow 还没有相应更新。

此方法会强制 Flow 立即响应其子节点中任何未完成的更改。

注意:一般来说,只有在组件完成后才能调用方法。


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