GridLayout QML Type
Provides a way of dynamically arranging items in a grid. More...
Import Statement: | import QtQuick.Layouts 1.14 |
Inherits: |
Properties
- columnSpacing : real
- columns : int
- flow : enumeration
- layoutDirection : enumeration
- rowSpacing : real
- rows : int
Detailed Description
If the GridLayout is resized, all items in the layout will be rearranged. It is similar to the widget-based QGridLayout. All visible children of the GridLayout element will belong to the layout. If you want a layout with just one row or one column, you can use the RowLayout or ColumnLayout. These offer a bit more convenient API, and improve readability.
By default items will be arranged according to the flow property. The default value of the flow property is GridLayout.LeftToRight
.
If the columns property is specified, it will be treated as a maximum limit of how many columns the layout can have, before the auto-positioning wraps back to the beginning of the next row. The columns property is only used when flow is GridLayout.LeftToRight
.
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 } }
The rows property works in a similar way, but items are auto-positioned vertically. The rows property is only used when flow is GridLayout.TopToBottom
.
You can specify which cell you want an item to occupy by setting the Layout.row and Layout.column properties. You can also specify the row span or column span by setting the Layout.rowSpan or Layout.columnSpan properties.
Items in a GridLayout support these attached properties:
- 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
- Layout.margins
- Layout.leftMargin
- Layout.rightMargin
- Layout.topMargin
- Layout.bottomMargin
Read more about attached properties here.
See also RowLayout, ColumnLayout, and Grid.
Property Documentation
columnSpacing : real
This property holds the spacing between each column. The default value is 5
.
columns : int
This property holds the column limit for items positioned if flow is GridLayout.LeftToRight
. The default value is that there is no limit.
flow : enumeration
This property holds the flow direction of items that does not have an explicit cell position set. It is used together with the columns or rows property, where they specify when flow is reset to the next row or column respectively.
Possible values are:
- GridLayout.LeftToRight (default) - Items are positioned next to each other, then wrapped to the next line.
- GridLayout.TopToBottom - Items are positioned next to each other from top to bottom, then wrapped to the next column.
layoutDirection : enumeration
This property holds the layout direction of the grid layout - it controls whether items are laid out from left to right or right to left. If Qt.RightToLeft
is specified, left-aligned items will be right-aligned and right-aligned items will be left-aligned.
Possible values:
- Qt.LeftToRight (default) - Items are laid out from left to right.
- Qt.RightToLeft - Items are laid out from right to left.
This property was introduced in QtQuick.Layouts 1.1.
See also RowLayout::layoutDirection and ColumnLayout::layoutDirection.
rowSpacing : real
This property holds the spacing between each row. The default value is 5
.
rows : int
This property holds the row limit for items positioned if flow is GridLayout.TopToBottom
. The default value is that there is no limit.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qml-qtquick-layouts-gridlayout.html