QGridLayout理论总结
- 1. 简介
- 2. 操作布局元素
- 3. 常用属性
- 4. 间隔设置
1. 简介
QGridLayout 占用来自其父布局或 parentWidget()获得的空间,将其划分为行列表格形式,在每个布局的表格里放置控件或者布局器就行。
一般来说,列和行的行为功能相同;这里只讨论列,对应的行业具有相同属性。
每列都有一个最小宽度和一个 stretch factors。最小宽度是使用 setColumnMinimumWidth() 设置的最大宽度和该列中每个小部件的最小宽度。拉伸系数是使用 setColumnStretch() 设置的,并确定列将超出其必要的最小值的可用空间量。
这里有一个stretch factors 缩放因子,其实就是在布局器里面,每个控件或者布局按照什么比例划分布局的空间。
第一列 LayoutRowStretch 比例因子是2,其他是0,其实也就是 1,也就是说 第一列的布局元素按钮 大小的布局控件是其他的两倍。

2. 操作布局元素
通常,每个托管小部件或布局都使用 addWidget() 放入自己的单元格中。用addWidget(),addItem()和addLayout()开始将小部件和其他布局放入网格布局的单元格。同时,QGridLayout 将根据拉伸因子自动为列/行的所占宽高分配大小。
要从布局中删除小部件,请调用 removeWidget()。在 widget 上调用 QWidget::hide() 也会有效地从布局中删除该 widget,直到调用 QWidget::show()。
3. 常用属性
我们还可以通过 columnCount() 、rowCount() 来获取行列数目,用 itemAtPosition 来获取 对应位置的控件,这个控件可能是QWidget 也可能是 布局器的子类如 QSpaceItem QBoxLayout等。
4. 间隔设置
QBoxLayout 有两种间隔需要设置:
| 函数名 | 含义 |
|---|---|
| setContentsMargins() | 布局元素与布局器的边界,就是下面四周的间隔,默认是 9 |
| setVerticalSpacing() | 就是垂直布局元素之间的间隔,默认是 6 |
| setHorizontalSpacing | 就是水平布局元素之间的间隔,默认是 6 |







![[C/C++/初学者]500以内的亲密数对(VS2012)](https://img-blog.csdnimg.cn/f2a700d1545e432681b598878c437759.png)
![[附源码]Python计算机毕业设计高校体育馆管理信息系统Django(程序+LW)](https://img-blog.csdnimg.cn/feb0445aa59b442d84908465cdf1a666.png)









![[附源码]Python计算机毕业设计高校心理咨询管理系统Django(程序+LW)](https://img-blog.csdnimg.cn/548eacb0651443748e9d79f0bd69e3bf.png)


