GridLayout distributes its space into a grid of rows and columns, where each item can occupy one or more cells.
You can construct the layout in two ways using *rows and *columns. In the former constructor you pass arrays of items by rows, and in the latter by columns. Items can also be added later using -add and -addSpanning. To remove an item, simply use View: -remove for views, or QObject: -destroy for views or layouts.
It is possible to add more than one view into the same cell. The last added view will be the top-most. However, it is most probably more convenient to use a StackLayout for that purpose.
The layout manages the grid size automatically: you can add an item at any row and cell number. When items are added or removed, the grid will re-adjust according to the last occupied row and column.
Each item can be assigned an alignment either at layout construction or later using -setAlignment. An item will then get at most its default size, if available (see: View: -sizeHint), and will be aligned within its cell according to the specified alignment.
Each row or column can be assigned a stretch factor using -setRowStretch and -setColumnStretch. Rows or columns that would otherwise get equal space are then distributed according to the relative proportions of their stretch factors.
Each row or column can also be assigned a minimum size using -setMinRowHeight and -setMinColumnWidth, to override the size constraints imposed by the contained views.
In addition to adjusting the spacing between cells using Layout: -spacing you can control the spacing between rows and between columns separately using -hSpacing and -vSpacing.
You can leave any cell empty by not placing any item into it, or at construction using nil
instead of a view or another layout. Note though that the empty cells will always be regarded as freely stretchable and will not impose any constraints on space distribution.
Creates a GridLayout and fills each row with an array of items given as arguments.
... rows |
Each argument is an Array of items to form a consecutive row. An item can be a view, another layout, or nil for an empty cell. |
You can make an item span more than one cell by wrapping it into an Array, followed by pairs of (\rows, number) and/or (\columns, number). You can also assign an alignment to an item by following it with a pair of (\align, alignment). \rows, \columns, and \align can be abbreviated with \r, \c, and \a, respectively. For possible alignment values see Alignment.
The simplified syntax for placing key-value pairs into an array comes handy (see Syntax Shortcuts: Creating Arrays with key-value pairs, and the example below).
Example:
Creates a GridLayout and fills each column with an array of items given as arguments.
... cols |
Each argument is an Array of items to form a consecutive column. An item can be a view, another layout, or nil for an empty cell. |
To make an item span several cells, or assign an alignment to it, the same instructions as for *rows apply.
Adds an item into the cell at specified row and column.
item |
The item can be a view or another layout. |
row |
The row index. |
column |
The column index. |
align |
A symbol denoting the alignment, or nil. See Alignment for possible values. |
Adds an item into the grid so as to occupy several cells.
item |
The item can be a view or another layout. |
row |
The row index. |
column |
The column index. |
rowSpan |
The amount of cells to occupy in vertical direction. |
columnSpan |
The amount of cells to occupy in horizontal direction. |
align |
A symbol denoting the alignment, or nil. See Alignment for possible values. |
The spacing between columns, in Integer amount of pixels.
The spacing between rows, in Integer amount of pixels.
Sets the stretch factor of a row. By default rows have a stretch factor of 0. If a larger factor is assigned to a row, rows will get their space redistributed according to the relative proportions of their factors.
row |
The index of a row. |
factor |
An Integer. |
Sets the stretch factor of a column. By default columns have a stretch factor of 0. If a larger factor is assigned to a column, columns will get their space redistributed according to the relative proportions of their factors.
column |
The index of a column. |
factor |
An Integer. |
Sets the alignment of an item managed by the layout.
item |
A view or a layout managed by this layout, or a Point of which x denotes the column index and y the row index of an item. |
align |
A symbol denoting the alignment. See Alignment for possible values. |
Gets the minimum height assigned to a row.
row |
The index of a row. |
Sets the minimum height of row.
row |
The index of a row. |
height |
An Integer amount of pixels. |
Gets the minimum width assigned to a column.
column |
The index of a column. |
Sets the minimum width of a column.
column |
The index of a column. |
width |
An Integer amount of pixels. |