Qt Quick中的布局管理器与Qt Widgets中的相似,它与定位器的不同之处在于:布局管理器会自动调整子Item的尺寸来适应界面大小的变化。
GridLayout
qml中比较复杂的是GridLayout,在使用时,需要包含QtQuick.Layouts
。
RowLayout和 ColumnLayout实际上可以看作是GridLayout的两个特例。
GridLayout与Qt C++中的QGridLayout功能类似,它在一个表格中安排它管理的Item, 如果用户调整界面尺寸,GridLayout会自动重新调整Item的位置。
GridLayout会根据flow属性来排列元素,这与Grid定位器类似,flow属性的默认值是 GridLayout.LeftToRight,从左到右安排元素,一行结束再另起一行。而判定行结束的一个条 件是 columns 属性,它指定一个 GridLayout 的列数。如果 flow 取值 GridLayout.TopToBottom, GridLayout则从上到下安排元素,一列结束再另起一列。rows属性指定GridLayout的行数, 它将决定何时新开一列来排布剩余的元素。
GridLayout 提供的主要属性包括:
- rows 和 columns:定义网格的行和列数量。
- rowSpacing 和 columnSpacing:定义行和列之间的间距。
- Layout.row、Layout.column、Layout.rowSpan 和