所有QWidget子类可以使用布局来管理他们的子控件
QWidget::setLayout()函数可以为一个空间布局
当通过这种方式布局以后,它负责以下任务
定位子部件
感知窗口默认大小
感知窗口最小大小
改变大小处理

当内容改变是自动更新:

字体大小文本或子部件的其它内容随之改变
隐藏或显示子部件
移除一个子部件

QLayout子类:

QBoxLayout基本布局管理器;QHBoxLayout水平布局管理器;QVBoxLayout垂直布局管理器
QGridLayout栅格布局管理器
QFormLayout窗体布局管理器
QSrackedLayout栈布局管理器

  1. #include <QApplication>
  2. #include <QLayout>
  3. #include <QPushButton>
  4. int main(int argc,char*argv[])
  5. {
  6. QApplication app(argc,argv);
  7. QWidget*window = new QWidget;
  8. QPushButton *button1 = new QPushButton("one");
  9. QPushButton *button2 = new QPushButton("two");
  10. QPushButton *button3 = new QPushButton("three");
  11. QPushButton *button4 = new QPushButton("four");
  12. QPushButton *button5 = new QPushButton("five");
  13. QHBoxLayout *layout = new QHBoxLayout;
  14. //QVBoxLayout *layout = new QVBoxLayout;
  15. layout->addWidget(button1);
  16. layout->addWidget(button2);
  17. layout->addWidget(button3);
  18. layout->addWidget(button4);
  19. layout->addWidget(button5);
  20. window->setLayout(layout);
  21. window->show();
  22. return app.exec();
  23. }

EDLQC2VAU_GN8@EE2PFKG[D.png](https://cdn.nlark.com/yuque/0/2021/png/12500589/1615947491053-e3041c18-245f-4015-8a60-810455c69dbc.png#align=left&display=inline&height=93&margin=%5Bobject%20Object%5D&name=EDLQC2VAU_GN8%40EE2PFKG%5BD.png&originHeight=93&originWidth=521&size=3198&status=done&style=none&width=521)<br />![}(ND(~D{[`Y9%9U]PR0K6JR.png