GridLayout
ImportStatement: import QtQuick.Layouts 1.1
Inherits: Item
Properties
columnSpacing: real
columns :int
flow :enumeration
layoutDirection: enumeration
rowSpacing :real
rows : int
DetailedDescription
如果GridLayout改变尺寸,所有处理的组件都重新排列。它类似于基于QGridLayout的窗口。所有可视得GridLayout子组件都属于布局。如果我们只想布局一行或一列,我们可以使用RowLayout或ColumnLayout。这些布局提供我们更方便的API,同时提高代码的可读性。
默认情况下,它根据flow属性排列组件。flow的默认值是GridLayout.LeftToRight。
如果columns属性被指定,它将被视为布局中最多有多少列,当一行达到该列数,就开始在下一行布局。仅仅当flow属性是GridLayout.LeftToRight时,columns属性才被应用。
实现代码:
GridLayout {
id: grid
columns: 3
Text { text: "Three"; font.bold:true; }
Text { text: "words"; color:"red" }
Text { text: "in";font.underline: true }
Text { text: "a"; font.pixelSize:20 }
Text { text: "row";font.strikeout: true }
}
rows属性以相似的方式工作。它自动垂直定位。只有当flow属性是GridLayout.TopToBottom时,rows属性才被应用。
我们能通过设置Layout.row和Layout.column属性,指定那个子组件占用那个单元。我们还可以通过设置Layout.rowSpan和Layout.columnSpan属性设置行宽和列宽。
在GridLayout内的组件支持下面的关联属性:
Layout.row
Layout.column
Layout.rowSpan
Layout.columnSpan
Layout.minimumWidth
Layout.minimumHeight
Layout.preferredWidth
Layout.preferredHeight
Layout.maximumWidth
Layout.maximumHeight
Layout.fillWidth
Layout.fillHeight
Layout.alignment
PropertyDocumentation
columnSpacing: real
在每列之间的空间。默认为5。
columns :int
在flow是GridLayout.LeftToRight时的最大列数。默认是不限制。
flow :enumeration
没有明确单元分配的组件的流动方向。它和columns或rows属性一起使用,指明什么时候流到下一行或下一列。它的可能值为:
GridLayout.LeftToRight(default) -根据layoutDirection 定位下一个子组件。当宽度超过限制,开始在下一行开始定位组件。
GridLayout.TopToBottom-从顶到底定位下一个子组件,高度超过限制,开始在下一列定位组件。
layoutDirection: enumeration
网格布局的方向。它控制组件是从左到右还是从右到左布局。如果Qt.RightToLeft被指定,左对齐的组件将变成右对齐,右对齐的组件将变成左对齐。
它的属性值为:
Qt.LeftToRight(default) -子组件按照从顶到底,从左到右的顺序一个接一个定位。流方向依赖于Grid::flow属性。
Qt.RightToLeft-子组件按照从顶到底,从右到左的顺序一个接一个定位,流方向依赖于 GridLayout::flow属性。
rowSpacing :real
相邻行之间的空间,默认为5
rows : int
当flow是GridLayout.TopToBottom时,这个属性限制一列的最大行数。默认值是不限制。