本页内容

Flow QML Type

将子元素并排排列,必要时进行换行。更多...

Import Statement: import QtQuick
Inherits:

Item

属性

信号

方法

详细说明

“流”控件会像页面上的文字一样排列其子项,并通过换行将它们排列成行或列。

下面是一个包含各种“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 }
    }

“流”控件会自动将子“Text ”控件并排排列,并根据需要进行换行:

在 Flow 定位器中,文本项像页面上的单词一样进行换行

如果“流”中的某个项目不是visible ,或者其宽度或高度为0,则该项目不会被布局,也不会显示在“流”中。此外,由于“流”会自动定位其子项目,因此“流”中的子项目不应设置x 或y 位置,也不应使用任何anchor 属性进行锚定。

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

另请参阅《 Column》 、《Row 》、《Grid 》、《 Positioner 》以及《Qt Quick 示例——定位器》。

属性文档

add : Transition

该属性用于存储添加到此定位器中的项目应执行的过渡效果。对于定位器而言,这适用于:

  • 在定位器创建后,作为定位器的子项被创建或重新父级化的项
  • 将Item::visible 属性从false改为true、从而变为可见的子项

该过渡效果可使用 `ViewTransition ` 属性来获取有关正在添加的项的更多详细信息。有关使用这些过渡效果的更多详细信息和示例,请参阅ViewTransition 文档。

注意:此 过渡效果不适用于在定位器创建时已属于该定位器的项目。在此情况下,将应用populate 过渡效果。

另请参阅 populate 、ViewTransition 以及Qt Quick 示例 - 定位器。

bottomPadding : real

leftPadding : real

padding : real

rightPadding : real

topPadding : real

这些属性用于控制内容周围的填充。

effectiveLayoutDirection : enumeration [read-only]

该属性用于指定流的实际布局方向。

在为区域布局使用附加属性 `LayoutMirroring::enabled ` 时,网格定位器的视觉布局方向将被镜像。但属性 `layoutDirection ` 将保持不变。

另请参阅 Flow::layoutDirection 和LayoutMirroring 。

flow : enumeration

该属性控制布局的流向。

可能的取值包括:

  • Flow.LeftToRight(默认)——项目根据layoutDirection 从左到右排列,直到超过Flow的宽度,然后换行到下一行。
  • Flow.TopToBottom — 项目按从上到下的顺序紧邻排列,直到超过流(Flow)的高度,然后换行至下一列。

layoutDirection : enumeration

该属性用于指定布局的方向。

可能的取值为:

  • Qt.LeftToRight(默认)—— 项目从上到下、从左到右排列。流向取决于Flow::flow 属性。
  • Qt.RightToLeft — 项目从上到下、从右到左排列。流向取决于Flow::flow 属性。

另请参阅 Grid::layoutDirection 和Row::layoutDirection 。

move : Transition

此属性用于控制在定位器内部移动的项的过渡效果。对于定位器而言,这适用于:

  • 因定位器中其他元素的添加、移除或重新排列而发生位移的子元素
  • 因定位器中其他项调整大小而重新定位的子项

该过渡效果可使用 `ViewTransition ` 属性来获取有关正在移动的项的更多详细信息。但请注意,对于此移动过渡效果,`ViewTransition` 中的 `.targetIndexes` 和 `ViewTransition` 中的 `.targetItems` 列表仅在该过渡效果由定位器中其他项的添加触发时才会被设置;在其他情况下,这些列表将为空。 有关使用这些过渡的更多详细信息和示例,请参阅ViewTransition 文档。

另请参阅 add 、populate 、ViewTransition 以及Qt Quick 示例 - 定位器。

populate : Transition

该属性存储在定位器创建时,属于该定位器的项目所执行的过渡效果。该过渡效果在定位器首次创建时执行。

该过渡可使用 `ViewTransition ` 属性来获取有关正在添加的项目的更多详细信息。有关使用这些过渡的更多详细信息和示例,请参阅ViewTransition 文档。

另请参阅 add 、ViewTransition 以及Qt Quick 示例 - 定位器。

spacing : real

间距是指相邻项目之间留出的空白区域的大小(以像素为单位),默认值为 0。

另请参阅 Grid::spacing 。

Signal 文档

positioningComplete()

当定位完成时,会发出此信号。

注意: 相应的处理程序 为onPositioningComplete 。

方法文档

void forceLayout()

Flow 通常每帧对子元素进行一次定位。这意味着在脚本块内部,底层子元素可能已经发生变化,但 Flow 尚未相应地更新。

此方法会强制 Flow 立即响应其子控件中任何未处理的变更。

注意:通常情况下,方法应在组件完成之后才被调用。

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