Flow
ImportStatement: import QtQuick 2.2
Inherits: Item
Properties
add :Transition
effectiveLayoutDirection: enumeration
flow :enumeration
layoutDirection: enumeration
move :Transition
populate :Transition
spacing :real
DetailedDescription
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根据子组件包装需要的空间,自动从一边到另一边定位子组件:
如果Flow中的组件不可见或子组件的宽或高为0,那么子组件不会被布局,也不会被显示。同时,由于Flow自动定位子组件的位置,所以不推荐设置子组件的x、y或用锚属性锚定子组件。
同时参阅Column、Row、Grid、Positioner。
PropertyDocumentation
add :Transition
往Flow中增加组件或先创建位置,后给位置相应的子组件或一个组件由不可见变得可见时,这个过渡触发。过渡能用ViewTransition属性去访问添加在子组件上的细节。可参阅ViewTransition的文档来了解更多信息。
注意在Flow创建时已经是Flow的一部分的子组件不会触发这个过渡,取代的,是触发populate过渡。
effectiveLayoutDirection: enumeration
布局的有效方向。当使用关联属性LayoutMirroring::enabled处理本地布局,栅格位置的可视化布局方向将会被镜像,但layoutDirection属性保持不变。
更多的信息看Flow::layoutDirection和LayoutMirroring。
flow :enumeration
布局的流动方向。可能的值为
Flow.LeftToRight(default) -根据layoutDirection 定位下一个子组件。当宽度超过限制,开始在下一行开始定位组件。
Flow.TopToBottom-从顶到底定位下一个子组件,高度超过限制,开始在下一列定位组件。
layoutDirection: enumeration
布局的方向。可能值为:
Qt.LeftToRight(default) -子组件按照从顶到底,从左到右的顺序一个接一个定位。流方向依赖于Flow::flow属性。
Qt.RightToLeft-子组件按照从顶到底,从右到左的顺序一个接一个定位,流方向依赖于 Flow::flow属性。
同时参阅Grid::layoutDirection、Row::layoutDirection。
move :Transition
当由于添加,移除或重新排列子组件导致组件失去当前所处的位置,或改变组件的大小导致子组件失去位置时,这个过渡被触发。过渡能用ViewTransition属性去访问添加在子组件上的细节。注意对这个过渡来说,只有当过渡被在移动组件的位置添加组件而失去位置所触发时,ViewTransition.targetIndexes和ViewTransition.targetItems列表才被设置。其他情况,列表是空的。可参阅ViewTransition的文档来了解更多信息。
注意:在Qt Quick 1,Flow被创建时的所有存在子组件,都使用这个过渡。而在Qt Quick 2中,使用populate这个过渡来处理Flow的第一次创建。
populate :Transition
Flow第一次被创建时,已经是Flow的一部分的子组件触发的过渡。过渡能用ViewTransition属性去访问添加在子组件上的细节。可参阅ViewTransition的文档来了解更多信息
spacing :real
相邻的组件之间的空间。以像素为单位。