Qt的布局管理系统使用起来简单方便、功能强大,可以自动的对某个widget下的子widget进行合理化布局,充分的使用所有可用的空间。
概述
Qt有一系列的布局管理类,用来描述在交互界面上这些子部件如果排列。当子部件的位置、大小改变后,这些个布局管理类会自动处理子部件的空间位置、大小,使之可以整齐的排列起来。
所有的QWidget子类都可以使用布局管理类来排列其子widget。调用QWidget::setLayout()函数可以指定该widget使用什么样的布局方式。当某个widget被指定布局时,该布局将会自动的完成如下的动作:
定位子widget的位置设置windows的默认大小设置windows的最小大小重新调整大小当如下部分更改时自动调整更新:
(1) 字号、text内容
(2) 显示/隐藏某widget
(3) 删除某widget
Qt的布局管理类
Qt的这些布局管理类是专门为手敲代码进行布局而设计的,并且布局的精度以像素为单位。Qt Designer这种可视化布局的时候也同样使用了这些布局管理类。用Qt Designer设计表单有个好处,就是这些布局避免了编译、链接、循环运行。
QGraphicsAnchor(在QGraphicsAnchorLayout中表示两个item的锚点);QGraphicsAnchorLayout(在Graphics View中一个item链接到widget的锚点的布局);QBoxLayout(水平/垂直布局);QHBoxLayout(水平布局);QVBoxLayout(垂直布局);QFormLayout(表单布局);QGridLayout(网格布局);QLayout(布局的基类);QLayoutItem(布局中的抽象项目);QSpacerItem(布局中的空格);QWidgetItem(布局中的widget项目);QSizePolicy(布局策略,描述了水平/垂直布局时的策略);QStackedLayout(堆栈widget,同一时刻只有一个widget可显示);QButtonGroup(管理一堆按钮的容器);QGroupBox(有标题的组合框);QStackedWidget(堆栈widget);
水平布局、垂直布局、网格布局、表单布局
最简单的使用布局的