网格 QML 类型
按照网格形式排列其子项。 更多...
导入语句 | import QtQuick |
继承 |
属性
- add : 过渡
- bottomPadding : 实数
- columnSpacing : 数据实数
- columns : 整数
- effectiveHorizontalItemAlignment : 枚举类型
- effectiveLayoutDirection : 枚举类型
- flow : 枚举类型
- horizontalItemAlignment : 枚举类型
- layoutDirection : 枚举类型
- leftPadding : 实数
- move : 过渡
- padding : 实数
- populate : 过渡
- rightPadding : 实数
- rowSpacing : 数据实数
- rows : 整数
- spacing : 数据实数
- topPadding : 实数
- verticalItemAlignment : 枚举类型
信号
方法
详细说明
网格是一种将子项定位成网格形式的类型。
网格创建足以容纳所有子项的单元格网格,并将这些项从左到右、从上到下放置在单元格中。每个项均位于其单元格的左上角位置 (0, 0)。
默认情况下,网格有四个列,并根据需要创建尽可能多的行以达到其所有子项。行数和列数可以通过设置 rows 和 columns 属性来限制。
例如,下面是一个包含大小不同的五个矩形的网格
import QtQuick Grid { columns: 3 spacing: 2 Rectangle { color: "red"; width: 50; height: 50 } Rectangle { color: "green"; width: 20; height: 50 } Rectangle { color: "blue"; width: 50; height: 20 } Rectangle { color: "cyan"; width: 50; height: 50 } Rectangle { color: "magenta"; width: 10; height: 10 } }
网格会自动将子项定位成网格形式
如果网格中的项目不可见,或者它的宽度或高度为 0,则该项目将不会布局,且在列中也不会可见。此外,由于网格会自动定位其子项,因此网格中的子项不应设置其 x 或 y 位置或使用任何 锚点 属性进行锚定。
有关使用网格和其他相关定位器类型的信息,请参阅 项目定位器。
另请参阅 Flow、行、列、定位器、GridLayout 以及 Qt 快速示例 - 定位器。
属性文档
这些属性保存围绕内容的外边距。
设置网格中项目的水平和垂直对齐方式。默认情况下,项目垂直对齐到顶部。水平对齐方式遵循网格的 layoutDirection,例如当具有 layoutDirection 从 LeftToRight 时,项目将对齐到左边。
horizontalItemAlignment
的有效值是 Grid.AlignLeft
、Grid.AlignRight
和 Grid.AlignHCenter
。
verticalItemAlignment
的有效值是 Grid.AlignTop
、Grid.AlignBottom
和 Grid.AlignVCenter
。
下面的图片显示了三种对齐项的示例。
水平对齐 | AlignLeft | AlignHCenter | AlignHCenter |
垂直对齐 | AlignTop | AlignTop | AlignVCenter |
当使用附加属性 LayoutMirroring::enabled 或设置 layoutDirection 来镜像布局时,项目的水平对齐也将被镜像。但是,属性 horizontalItemAlignment
将保持不变。要查询项目的有效水平对齐方式,请使用只读属性 effectiveHorizontalItemAlignment
。
另请参阅 Grid::layoutDirection 和 LayoutMirroring。
add : 过渡 |
此属性保存要为此定位器运行的项目过渡。对于定位器,这适用于:
- 定位器创建或作为定位器的子项重新父母化的项目
- 更改其 Item::visible 属性从 false 到 true 的子项,因此现在是可见的
过渡可以使用 ViewTransition 属性来访问要添加的项目更多的详细信息。请参阅 ViewTransition 文档,了解更多有关使用这些过渡的细节和示例。
注意:此过渡不应用于创建时刻已包含在位置器中的项目。在这种情况下,将应用populate过渡。
columnSpacing : qreal |
columns : int |
此属性保存网格中的列数。默认列数为4。
如果网格中没有足够的项来填充指定的列数,则某些列将为零宽度。
effectiveLayoutDirection : 枚举 |
此属性保存网格的有效布局方向。
当使用附加属性LayoutMirroring::enabled进行区域布局时,网格位置器的视觉布局方向将相反。然而,属性layoutDirection将保持不变。
另请参阅 Grid::layoutDirection 和 LayoutMirroring。
flow : 枚举 |
此属性保存布局的流动。
可能的值有
- Grid.LeftToRight(默认)- 将item按layoutDirection顺序并排放置,然后换行。
- Grid.TopToBottom - 从上到下项相邻放置,然后换列。
layoutDirection : 枚举 |
此属性保存布局的方向。
可能的值有
- Qt.LeftToRight(默认)- 从上到下,从左到右定位item。流动方向取决于Grid::flow属性。
- Qt.RightToLeft - 从上到下,从右到左定位item。流动方向取决于Grid::flow属性。
move : 过渡 |
此属性保存要对位置器内移动的项运行的过渡。对于一个位置器,这适用于:
- 因为位置器中其他项目的添加、删除或重新排列而位移的子项目
- 因为位置器中其他项目的调整大小而重新定位的子项目
过渡可以使用ViewTransition属性来访问即将移动的项的更多详细信息。请注意,然而,对于此移动过渡,ViewTransition.targetIndexes和ViewTransition.targetItems列表仅在此过渡由位置器中其他项目的添加触发时设置;在其他情况下,这些列表将为空。请参阅ViewTransition文档以获取更多详细信息和使用这些过渡的示例。
populate : Transition |
该属性在创建时保存了属于该定位器位置的项目所运行的过渡。过渡在定位器第一次创建时运行。
过渡可以使用 ViewTransition 属性来访问要添加的项目更多的详细信息。请参阅 ViewTransition 文档,了解更多有关使用这些过渡的细节和示例。
另请参阅add、ViewTransition 和 Qt Quick 示例 - 定位器。
rowSpacing : 浮点型 |
rows : 整型 |
该属性保存了网格中的行数。
如果网格中没有足够的项来填满指定的行数,则某些行将为零宽度。
spacing : 浮点型 |
信号文档
positioningComplete() |
当定位完成时发射此信号。
注意:相应的事件处理器为 onPositioningComplete
。
方法文档
forceLayout() |
Grid 通常每帧对其子项定位一次。这意味着在脚本块内部,底层子项可能已更改,但 Grid 还未相应地更新。
此方法强制 Grid 立即对其子项中任何挂起的更改做出响应。
注意:通常应在组件完成之后调用方法。
© 2024 Qt 公司。这里包含的文档贡献是各自所有者的版权。提供的文档是在自由软件基金会的 GNU 自由文档许可协议版本 1.3 的条款下授权的。Qt 及相关标志是芬兰及/或世界上其他地区的 Qt 公司的商标。所有其他商标均为各自所有者的财产。