QGridLayout

一、描述

QGridLayout 获取对其可用的空间(通过其父布局或通过 parentWidget()),将其划分为行和列,并将其管理的每个小部件放入正确的单元格中。

每列/行都有一个最小宽度/最小高度和一个拉伸因子

列和行的宽度或高度不同。如果希望两列具有相同的宽度,必须将它们的最小宽度和拉伸因子设置为相同。

QGridLayout 还包括两个边距宽度:内容边距和间距。内容边距是沿 QGridLayout 的四个边的每个保留空间的宽度。间距是相邻框之间自动分配的间距的宽度。

默认内容边距值由样式提供。Qt 样式指定的默认值对于子窗口小部件是 9,对于窗口是 11。间距默认与顶级布局的边距宽度相同,或与父布局相同。

二、属性成员

1、horizontalSpacing : int / verticalSpacing : int

水平间距 / 垂直间距。

三、成员函数

1、void addItem(QLayoutItem *item, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment alignment = Qt::Alignment())

添加 item,并根据 alignment 对齐。如果 rowSpan 和/或 columnSpan 为 -1,则 item 将分别延伸到底部和/或右侧边缘。布局获取 item 的所有权。

勿使用此功能添加子布局或子小部件项目。应使用 addLayout() 或 addWidget()。

2、void addLayout(QLayout *layout, int row, int column, Qt::Alignment alignment = Qt::Alignment())

     void addWidget(QWidget *widget, int row, int column, Qt::Alignment alignment = Qt::Alignment())

将 layout / widget 放置在网格中的(row、column)。

默认对齐方式为 layout / widget 填充整个单元格。

非Qt::Alignment()的对齐方式表示布局不应增长以填充可用空间,但应根据 QGridLayout::sizeHint() 调整大小。

layout / widget 成为网格布局的子级。

     void addLayout(QLayout *layout, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())

     void addWidget(QWidget *widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())

layout 添加到网格布局,跨越 rowSpan 行和 columnSpan 列。

若 rowSpan 和/或 columnSpan 为 -1,则 layout / widget 将分别延伸到底部和/或右侧边缘。

3、QRect cellRect(int row, int column)

返回网格布局中相应单元格中的几何形状。

4、int columnCount() / int rowCount()

返回此网格中的列 / 行数。

5、int columnMinimumWidth(int column) / int rowMinimumHeight(int row)

      void setColumnMinimumWidth(int column, int minSize)

      void setRowMinimumHeight(int row, int minSize)

第 column 列 / row 行的最小宽度 / 高度。 

6、int columnStretch(int column) / int rowStretch(int row

      void setColumnStretch(int column, int stretch) / void setRowStretch(int row, int stretch)

第 column 列 / row 行的拉伸因子。 

拉伸因子相对于网格布局中的其他行/列。具有较高拉伸因子的行/列占用更多可用空间。

7、void getItemPosition(int index, int *row, int *column, int *rowSpan, int *columnSpan)

返回第 index 处的项目的位置信息。

8、QLayoutItem * itemAtPosition(int row, int column)

返回占据单元格(row , column)的布局项。 

9、Qt::Corner originCorner() / void setOriginCorner(Qt::Corner Corner)

设置用于网格原点的角,即位置 (0, 0)。

enum Qt::Corner:此枚举类型指定矩形中的一个角:

  • Qt::TopLeftCorner:矩形的左上角(默认)。
  • Qt::TopRightCorner:矩形的右上角。
  • Qt::BottomLeftCorner:矩形的左下角。
  • Qt::BottomRightCorner:矩形的右下角。

默认如下布局:

然后设置其他类型: 

Qt::TopRightCorner

 

Qt::BottomLeftCorner

 

Qt::BottomRightCorner

可以用 QGridLayout 的情况基本上也能用 QFormLayout,而且 QFormLayout 更加方便,但这个函数的功能是 QFormLayout 不具备的。

10、void setSpacing(int spacing)

将垂直和水平间距都设置为 spacing。

      int spacing()

如果垂直间距等于水平间距,则此函数返回该值; 否则返回-1。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值