一个软件无论想要界面中的部件有一个整齐的排列,还是想要界面能适应窗口的大小变化,都需要进行布局管理。布局管理实现上分拖拽和代码编写,单一和组合嵌套。本文描述的是整齐排列。
1.实现:界面拖拽 单一、组合嵌套
2.实现:代码编写与组合实例
1.实现:界面拖拽 单一、组合嵌套
1.1单一布局
4种基本布局 水平QHBoxLayout、竖直QVBoxLayout、网格QGridLayout、表单QFormLayout。
水平QHBoxLayout和竖直QVBoxLayout 没什么好说的。主要是网格和表单。
1.1.1网格QGridLayout拖拽一个QGridLayout,然后添加部件。
1.1.2 表单QFormLayout拖拽一个QFormLayout,双击后出来,填上文字。
不是自己写label +combox!!
1.2组合与嵌套
方法1:先拖拽布局进行属性设定?设定某个参数值,几行几列,设定子网格中大小比例,再把部件放进去。
方法2:先拖拽部件再调整网格?都可以。个人选择了第二种。
2.实现:代码编写与组合实例
平铺四个布局
方法1:
- 创建一全局布局。
- 创建4种全局布局。
- 4种全局布局依附于全局布局上。
1.
创建一全局布局
wlayout = QtWidgets.QHBoxLayout()
2.
创建4个局部布局
hlayout = QtWidgets.QHBoxLayout()
vlayout = QtWidgets.QVBoxLayout()
glayout = QtWidgets.QGridLayout()
flayout = QtWidgets.QFormLayout()
3.
把4个局部布局依附于全局布局上
wlayout.addWidget(hlayout)
wlayout.addWidget(vlayout)
wlayout.addWidget(glayout)
wlayout.addWidget(flayout)
方法2:
创建一全局布局
创建4个基类的 QWidget: hwg, vwg, gwg, fwg
基类设置成4种实例
全局布局应用到窗体本尊
1.
创建一全局布局
wlayout = QtWidgets.QHBoxLayout()
2.4
个基类的 QWidget: hwg, vwg, gwg, fwg
hwg = QtWidgets.QWidget()
vwg = QtWidgets.QWidget()
gwg = QtWidgets.QWidget()
fwg = QtWidgets.QWidget()
3.
基类设置成4种实例
hwg.setLayout(hlayout)
vwg.setLayout(vlayout)
gwg.setLayout(glayout)
fwg.setLayout(flayout)
4.
全局布局应用到窗体本尊
self.setLayout(wlayout)