文章目录
目的:将之前做的没有 layout布局的主窗口变为自适应的窗口。
耗费了不少时间,现直接上步骤:
1、新建窗口(我这里使用的Widget
)
2、拖动水平布局到界面(数量随意)
3、拖动你想使用的多个部件到布局框内部(会自动位移)
4、往需要调整水平相对位置大小的布局内添加”水平弹簧“(Horizonal Spacer
)
我这里在两头添加了两,你也可以再中间再添加一个,用处是设置部件与部件以及部件与窗体之间的相对间隔(具体设置看后面)
5、设置完部件的布局之后,还需要将部件与窗体关联:空白处右键,选择栅格布局(你也可以选择下一个选项试一试)
达到的效果如下:基本已经帮我们分配好各个部分的位置了。
6、挨个修改这三个布局(两个水平布局一个格栅布局)的拉伸参数(layoutStrech)
修改水平布局:
修改格栅布局:
注意格栅布局可是设置layoutRowStrech(纵向)和layoutColumnStrech(横向)的相对位置。
(其中的数字分别是各个部分的占比)
我这里只设置了纵向的比例要求:
关于如何理解上面写的“横向”和“”纵向:
7、修改窗体和部件的最大和最小值
请注意分别修改Form 和各个部件(特别注意 Qlabel 等有输出的部件)的最大大小(MaximumSize
),否则实际运行会出现因为Qlabel
内容变化将窗口拉变形的情况。
(有需要也可以设置一下最小大小,设置完成之后,预览一下,然后自己手动拉伸看一下)
最小:
最大:
如果后续你遇到了窗口打开不完整或者显示类似QLayout: Attempting to add QLayout ““ to MyDesiger “Form“, which already has a layout
的问题,可以看我的另一篇文章:
PyQt报错:界面显示不全,QLayout: Attempting to add QLayout ““ to MyDesiger “Form“, which already has a layout
最后,欢迎大家点赞、留言,一起交流进步!
参考:
PyQt5系列教程(6):布局