QML类型说明-GridLayout

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时,这个属性限制一列的最大行数。默认值是不限制。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
QML中,GridLayout是一种用于布局的元素。当GridLayout的大小被调整时,布局中的所有项目将被重新排列。与基于widget的QGridLayout类似,GridLayout中的所有可见子项都属于该布局。如果你只想要一个只有一行或一列的布局,你可以使用RowLayout或ColumnLayout,它们提供了更方便的API,并提高了可读性。例如,以下代码演示了如何使用GridLayout布局两个按钮: ``` import QtQuick 2.0 Item { width: 200 height: 200 GridLayout { columns: 2 rows: 1 spacing: 10 Button { text: "Button 1" } Button { text: "Button 2" } } } ``` 在这个例子中,GridLayout具有2列和1行,按钮被放置在这个布局中,并且有一个间距为10的间隔。 #### 引用[.reference_title] - *1* [Roson的Qt之旅 #112 QML布局之GridLayout(表格布局)](https://blog.csdn.net/jolin678/article/details/126579944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v4^insert_chatgpt"}} ] [.reference_item] - *2* [QML类型说明-GridLayout](https://blog.csdn.net/Vampire_Armand/article/details/39232627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v4^insert_chatgpt"}} ] [.reference_item] - *3* [QML GridLayout](https://blog.csdn.net/m0_60259116/article/details/130271473)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值