QML 布局:网格布局(GridLayout)

导入模块

import QtQuick.Layouts 1.1



继承
item类


属性
columnSpacing
设置布局的列间距。

columns
设置列数。如果flow为GridLayout.LeftToRight,则此属性保留所定位项的列限制。默认值为不限制。

flow
设置布局的流方向。
GridLayout.LeftToRight (默认):项彼此挨着放置,然后换行到下一行。
GridLayout.TopToBottom:条目从上到下挨个排列,然后包装到下一列。

layoutDirection
设置布局的布局方向。

rowSpacing
rows

如果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
Layout.margins
Layout.leftMargin
Layout.rightMargin
Layout.topMargin
Layout.bottomMargin

以上同其他布局的通用属性。可参考:QML 布局:列布局(ColumnLayout)和行布局(RowLayout )



举例

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 }
}

在这里插入图片描述

官方文档:https://doc.qt.io/qt-6/qml-qtquick-layouts-gridlayout.html#columnSpacing-prop

### QML 中使用 `GridLayout` 进行布局QML 中,`GridLayout` 是一种强大的布局管理器,允许开发者创建复杂的网格结构来安排子项的位置和大小[^2]。 #### 基本语法与属性介绍 `GridLayout` 可以通过指定每一项所在的行列位置以及跨越多少行或列来进行精确控制。常用属性包括: - **columns**: 设置网格中的总列数 - **rows**: 设置网格中的总行数 (可选) - **columnSpacing / rowSpacing**: 控制各单元格之间的间距 - **Layout.alignment**: 调整项目在其分配空间内的对齐方式 #### 示例代码展示 下面是一个简单的 `GridLayout` 使用案例,展示了如何在一个窗口内布置多个按钮并调整它们的相对位置: ```qml import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.15 Window { visible: true width: 600; height: 480 GridLayout { // 创建一个 Grid Layout 实例 anchors.fill: parent columns: 3 // 设定三列表格 columnSpacing: 10; rowSpacing: 10 // 单元间留白距离设定 Button { text: "Button 1" Layout.column: 0 Layout.row: 0 } Button { text: "Button 2" Layout.column: 1 Layout.row: 0 } Item { // 空占位符用于保持其他组件居中显示 Layout.column: 2 Layout.row: 0 Layout.preferredWidth: 0 Layout.preferredHeight: 0 } Button { text: "Button 3" Layout.columnSpan: 3 // 此按钮横跨整个宽度 Layout.row: 1 } } } ``` 此示例说明了如何利用 `GridLayout` 的灵活性构建响应式的用户界面,同时确保各个控件按照预期排列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值