您的位置:首页 > 编程语言 > Qt开发

QT5入门之29 -布局管理器

2015-11-02 15:19 519 查看
1.布局(Layouts)

窗体上的每个控件都需要有一个合适的尺寸和位置,从而设计出合理、美观的界面。

Qt中有三种方式对窗体上的控件进行布局管理,分别是:绝对布局、手工布局和Qt布局管理器。

2.绝对布局

绝对布局很简单,控件的位置是固定的,控件不会随着窗口大小的变化而变化。

由于控件大小不变,当改变控件标题,文本可能显示不全。

3.手工布局

手工布局中控件的位置是固定的,但是控件的尺寸会随着窗口的大小变化而变化,可以通过重写窗体控件的resizeEvent()实现对子控件的大小的设置。setGeometry

管理窗体上控件最简单的方法就是使用Qt的布局管理器。

4.布局管理器可以使控件的大小随着窗口大小的改变而改变。

Qt Creator有4种布局组件,QHBoxLayout水平布局、QVBoxLayout垂直布局、QGridLayout网格布局、QStackLayout 分组布局。

水平布局:控件按水平方向排列。

垂直布局:控件按垂直方向排列,宽度随垂直布局管理器改变而改变,但是控件高度不变。

Grid布局管理器可以以网格的形式,将它所管理的部件以一定的矩阵形式排列。类似于HTML 的table。

可以先拖布局组件,再拖控件;也可以先拖控件。

如果对当前布局不满意,可以将布局管理器整体选中,单击上面工具栏上的“Break Layout”按钮,便可取消布局管理器。

5.间隔器(Spacers)是用来填补空白的控件,在布局管理器中配合使用。

实例:

hboxLayout ,button1 23均是成员变量。

//创建横向布局
hboxLayout = new QHBoxLayout();
button1 = new QPushButton("按钮1");
button2 = new QPushButton("按钮2");
button3 = new QPushButton("按钮3");
//向布局中添加控件
hboxLayout->addWidget(button1);
hboxLayout->addWidget(button2);
hboxLayout->addWidget(button3);
//间隔
hboxLayout->setSpacing(60);
//实例QWidget
widget = new QWidget();
//绑定布局
widget->setLayout(hboxLayout);


//创建纵向布局
gridLayout = new QGridLayout();
button1 = new QPushButton("按钮1");
button2 = new QPushButton("按钮2");
button3 = new QPushButton("按钮3");
//向布局中添加控件
//0,0,1,1 行 列 行间距 列间距
gridLayout->addWidget(button1,0,0,1,1);
gridLayout->addWidget(button2,0,1,1,1);
gridLayout->addWidget(button3,1,0,1,1);
//实例QWidget
widget = new QWidget();
//绑定布局
widget->setLayout(gridLayout);
//绑定界面
this->setCentralWidget(widget);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: