Qt学习之路三——基本布局管理

在Qt中,有三种基本布局:水平布局,垂直布局、网格布局,它们分别属于QHBoxLayout、QVBoxLayout以及QGridLayout。

它们的继承关系是这样的:


布局中 常用的方法就是addWidget()和addLayout()。

addWidget()的参数说明

1、需要插入布局的控价的对象

2、插入如的行

3、插入的列

4、占用的行

5、占用的列

6、描述各个控件的对齐方式

addLayout()的参数说明

1、需要插入的子布局对象

2、插入的起始行

3、插入的起始列

4、占用的行

5、占用的列

6、对齐方式

我们来看一个具体的例子。新建一个项目,基类选择二QWidge, 取消创建图形界面。

然后在类型添加这几个成员变量。

QPushButton *btn1;
QPushButton *btn2;
QLabel *lb1;
QLabel *lb2;
QHBoxLayout *hlayout1;
QHBoxLayout *hlayout2;
QVBoxLayout *vlayout;
QGridLayout *glayout;

然后我们在构造函数中对这些成员变量进行初始化。

//对这些标签和按钮进行初始化
lb1 = new QLabel("标签1");
lb2 = new QLabel("标签2");
btn1 = new QPushButton("按钮1");
btn2 = new QPushButton("按钮2");
hlayout1 = new QHBoxLayout;
hlayout2 = new QHBoxLayout;
vlayout = new QVBoxLayout;
glayout = new QGridLayout(this);

然后将标签1和按钮1,标签2,按钮2分别进行水平布局。

hlayout1->addWidget(lb1);
hlayout1->addWidget(btn1);
hlayout2->addWidget(lb2);
hlayout2->addWidget(btn2);

最后在将这两个水平布局加入到网格布局中,网格布局作为主布局。

glayout->addLayout(hlayout1,0,0);
glayout->addLayout(hlayout2,1,0);
最后编译一下,就会出现这样的结果


接下来用垂直布局试试看。

我们将四个控件都加入垂直布局中

vlayout->addWidget(lb1);
vlayout->addWidget(btn1);
vlayout->addWidget(lb2);
vlayout->addWidget(btn2);

最后将这个垂直布局加入网格布局中

glayout->addLayout(vlayout,0,0);

出来的结果就是这个样子


以上就是基本布局的几种用法。

猜你喜欢

转载自blog.csdn.net/y____xiang/article/details/80344504
今日推荐