网格 QML 类型

按照网格形式排列其子项。 更多...

导入语句import QtQuick
继承

Item

属性

信号

方法

详细说明

网格是一种将子项定位成网格形式的类型。

网格创建足以容纳所有子项的单元格网格,并将这些项从左到右、从上到下放置在单元格中。每个项均位于其单元格的左上角位置 (0, 0)。

默认情况下,网格有四个列,并根据需要创建尽可能多的行以达到其所有子项。行数和列数可以通过设置 rowscolumns 属性来限制。

例如,下面是一个包含大小不同的五个矩形的网格

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,则该项目将不会布局,且在列中也不会可见。此外,由于网格会自动定位其子项,因此网格中的子项不应设置其 xy 位置或使用任何 锚点 属性进行锚定。

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

另请参阅 Flow定位器GridLayout 以及 Qt 快速示例 - 定位器

属性文档

bottomPadding : real

leftPadding : real

padding : real

rightPadding : real

topPadding : real

这些属性保存围绕内容的外边距。


effectiveHorizontalItemAlignment : 枚举 [只读]

horizontalItemAlignment : 枚举

verticalItemAlignment : 枚举

设置网格中项目的水平和垂直对齐方式。默认情况下,项目垂直对齐到顶部。水平对齐方式遵循网格的 layoutDirection,例如当具有 layoutDirection 从 LeftToRight 时,项目将对齐到左边。

horizontalItemAlignment 的有效值是 Grid.AlignLeftGrid.AlignRightGrid.AlignHCenter

verticalItemAlignment 的有效值是 Grid.AlignTopGrid.AlignBottomGrid.AlignVCenter

下面的图片显示了三种对齐项的示例。

水平对齐AlignLeftAlignHCenterAlignHCenter
垂直对齐AlignTopAlignTopAlignVCenter

当使用附加属性 LayoutMirroring::enabled 或设置 layoutDirection 来镜像布局时,项目的水平对齐也将被镜像。但是,属性 horizontalItemAlignment 将保持不变。要查询项目的有效水平对齐方式,请使用只读属性 effectiveHorizontalItemAlignment

另请参阅 Grid::layoutDirectionLayoutMirroring


add : 过渡

此属性保存要为此定位器运行的项目过渡。对于定位器,这适用于:

  • 定位器创建或作为定位器的子项重新父母化的项目
  • 更改其 Item::visible 属性从 false 到 true 的子项,因此现在是可见的

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

注意:此过渡不应用于创建时刻已包含在位置器中的项目。在这种情况下,将应用populate过渡。

另请参阅:populateViewTransitionQt Quick 示例 - 位置器


columnSpacing : qreal

此属性保存列之间的像素间距。

如果未设置此属性,则使用列间距的间距。

默认情况下,此属性未设置。

另请参阅:rowSpacing


columns : int

此属性保存网格中的列数。默认列数为4。

如果网格中没有足够的项来填充指定的列数,则某些列将为零宽度。


effectiveLayoutDirection : 枚举 [只读]

此属性保存网格的有效布局方向。

当使用附加属性LayoutMirroring::enabled进行区域布局时,网格位置器的视觉布局方向将相反。然而,属性layoutDirection将保持不变。

另请参阅 Grid::layoutDirectionLayoutMirroring


flow : 枚举

此属性保存布局的流动。

可能的值有

  • Grid.LeftToRight(默认)- 将item按layoutDirection顺序并排放置,然后换行。
  • Grid.TopToBottom - 从上到下项相邻放置,然后换列。

layoutDirection : 枚举

此属性保存布局的方向。

可能的值有

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

另请参阅:Flow::layoutDirectionRow::layoutDirection


move : 过渡

此属性保存要对位置器内移动的项运行的过渡。对于一个位置器,这适用于:

  • 因为位置器中其他项目的添加、删除或重新排列而位移的子项目
  • 因为位置器中其他项目的调整大小而重新定位的子项目

过渡可以使用ViewTransition属性来访问即将移动的项的更多详细信息。请注意,然而,对于此移动过渡,ViewTransition.targetIndexes和ViewTransition.targetItems列表仅在此过渡由位置器中其他项目的添加触发时设置;在其他情况下,这些列表将为空。请参阅ViewTransition文档以获取更多详细信息和使用这些过渡的示例。

另请参阅:addpopulateViewTransitionQt Quick 示例 - 位置器


populate : Transition

该属性在创建时保存了属于该定位器位置的项目所运行的过渡。过渡在定位器第一次创建时运行。

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

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


rowSpacing : 浮点型

该属性保存了行之间的像素间距。

如果未设置该属性,则使用行间距。

默认情况下,此属性未设置。

另请参阅列间距


rows : 整型

该属性保存了网格中的行数。

如果网格中没有足够的项来填满指定的行数,则某些行将为零宽度。


spacing : 浮点型

间距是相邻项之间像素中留出的空间量。应用的间距量将在水平和垂直方向上相同。默认间距为0。

以下示例将一个包含红色、蓝色和绿色矩形的网格放置在灰色背景上。网格定位器占据的区域为白色。左侧定位器没有间距(默认设置),右侧定位器具有6的间距。

另请参阅rowscolumns


信号文档

positioningComplete()

当定位完成时发射此信号。

注意:相应的事件处理器为 onPositioningComplete


方法文档

forceLayout()

Grid 通常每帧对其子项定位一次。这意味着在脚本块内部,底层子项可能已更改,但 Grid 还未相应地更新。

此方法强制 Grid 立即对其子项中任何挂起的更改做出响应。

注意:通常应在组件完成之后调用方法。


© 2024 Qt 公司。这里包含的文档贡献是各自所有者的版权。提供的文档是在自由软件基金会的 GNU 自由文档许可协议版本 1.3 的条款下授权的。Qt 及相关标志是芬兰及/或世界上其他地区的 Qt 公司的商标。所有其他商标均为各自所有者的财产。