当前位置: 代码迷 >> 综合 >> PyQt:创建自适应大小的窗口(保姆级采坑经验)
  详细解决方案

PyQt:创建自适应大小的窗口(保姆级采坑经验)

热度:91   发布时间:2023-12-15 04:46:05.0

文章目录

目的:将之前做的没有 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):布局