分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。
布局是Qt中用来管理窗口内的子窗口的一种方法。布局本身不是窗口,它类似于一个虚拟的看不见的容器,可以自动调整其内的子窗口或子布局的大小和位置。
布局统一由QLayout类表示,以它作为基类,派生出所有具体的布局类型。其中常用的布局有水平布局、垂直布局和栅格布局,它们分别由QHBoxLayout类,QVBoxLayout类和QGridLayout类代表。这些类的继承关系如下所示:
QLayout
QBoxLayout QGridLayout
QHBoxLayout QVBoxLayout
注意:布局并不是窗口类,因此布局内放入窗口部件和放入布局的函数是不同的,一个是addWidget,一个是addLayout。
对于一个窗口来说,只能有一个布局成为它的顶级布局,这可以通过向布局的构造函数传递QWidget类的指针来实现,也可以通过QWidget类的以下成员函数实现:
- void setLayout(QLayout *layout)
这个函数可以将布局layout设为窗口的顶级布局。
栅格布局的addWidget函数原型与水平布局和垂直布局是不同的,参数上需要指明行号和列号。当然,栅格布局内也可以嵌套其他布局,使用以下函数:
- void addLayout(QLayout *layout, int row, int column);