QGridLayout::addWidget 的使用详解

Qt系列文章目录

前言

Qt中经常使用网格布局QGridLayout,并在网格中依次加入控件,我们可以依次定义行列排序

一、QGridLayout::addWidget

QGridLayout::addWidget 官方解释

在这里插入图片描述
可以看到有2个重载版本:
1.void QGridLayout::addWidget(QWidget *widget, int row, int column, Qt::Alignment alignment = Qt::Alignment())
Adds the given widget to the cell grid at row, column. The top-left position is (0, 0) by default.

The alignment is specified by alignment. The default alignment is 0, which means that the widget fills the entire cell.
翻译:
将给定的小部件添加到单元格网格的行、列。默认情况下,左上角位置为(0,0)。
对齐由对齐指定。默认对齐方式为0,这意味着小部件将填充整个单元格。

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

翻译:。
此版本将给定的小部件添加到单元格网格,跨越多行/列。该单元格将从fromRow、fromColumn开始,跨越rowSpan行和columnSpan列。小部件将具有给定的对齐方式。
如果rowSpan和/或columnSpan为-1,则小部件将分别扩展到底部和/或右边缘。

二、使用步骤

1.第一个版本:

void QGridLayout::addWidget(QWidget *widget, int row, int column, Qt::Alignment alignment = Qt::Alignment())
这个版本对应的行列规则的情况。
在这里插入图片描述

QGridLayout* gridlayout=new QGridLayout;
	gridlayout->addWidget(m_lab_Near, 0, 0);
	gridlayout->addWidget(m_spinbox_Near, 0, 1);
	gridlayout->addWidget(m_lab_Far, 1, 0);
	gridlayout->addWidget(m_spinbox_Far, 1, 1);

2.第二个版本

void QGridLayout::addWidget(QWidget *widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())
这个版本对应行列不规则的情况
在这里插入图片描述
如上图,红色表示坐标,窗口1横向跨越了2个单元格,那么 int rowSpan = 2 ;纵向跨越了2个单元格, 那么int columnSpan = 2

此窗口产生的代码如下:

    QGridLayout* gridLayout = new QGridLayout;
	QWidget widget1;
	QWidget widget2;
	QWidget widget3;
	QWidget widget4;
	QWidget widget5;
	QWidget widget6;
    
    gridLayout->addWidget(widgets1, 0, 0, 2, 2);       //窗口1
    gridLayout->addWidget(widgets2, 0, 2, 1, 1);       //窗口2
    gridLayout->addWidget(widgets3, 1, 2, 1, 1);       //窗口3
    gridLayout->addWidget(widgets4, 2, 0, 1, 1);       //窗口4
    gridLayout->addWidget(widgets5, 2, 1, 1, 1);       //窗口5
    gridLayout->addWidget(widgets6, 2, 2, 1, 1);       //窗口6

参考

zsiming

猜你喜欢

转载自blog.csdn.net/aoxuestudy/article/details/126725752