pyqt5-如何设置盒子布局的空白和拉伸

 时间:2026-02-14 02:07:59

1、创建父窗口控件:

①创建文件-test3.py;

②导入模块,PyQt5.Qt, sys;

③定义控件类 MyToot,设置初始值。

----定义setup_ui()方法,在构造函数中调用;

----定义一个test()方法,在setup_ui()中调用,

④实例应用程序对象,窗口类对象,并展示窗口;

pyqt5-如何设置盒子布局的空白和拉伸

2、实例盒子布局对象,:layout_box = QBoxLayout(2, self)

并添加3个label 控件;

pyqt5-如何设置盒子布局的空白和拉伸

1、给两个控件间添加空白:addSpacing(p_int) ,

如图,给 lb1, lb2之间 添加宽度为50的空白。

注:添加的空白在父窗口缩放时宽度是不会改变的。

pyqt5-如何设置盒子布局的空白和拉伸

2、插入空白:insertSpacing(p_int, p_int_1)

参数 p_int 是布局的位置索引, p_int_1 空白宽度(或高度)。

注:插入的空白在父窗口缩放时宽度(或高度)是不会改变的。

pyqt5-如何设置盒子布局的空白和拉伸

1、控件加入布局时设置拉伸:

在 addWidget(QWidget),insertLayout(p_int, QLayout),方法中都有一个关键字参数,stretch;就是设置控件的拉伸,默认值是0。

例如图:在盒子布局中有三个控件都设置了参数拉伸比,

layout_b.addWidget(pt1,stretch=7)


layout_b.addWidget(pt2,stretch=3
layout_b.insertLayout(0,ly,stretch=1)

注意,控件默认缩小到系统建议的尺寸(例如文本的宽度),所以缩小时,到最小尺寸,控件比例会不同。

pyqt5-如何设置盒子布局的空白和拉伸

2、布局添加空白拉伸:addStretch(stretch=0)

①这等于说是给控件间添加了一个空白控件,并把它两边,或上下的控件向两端推,像弹簧一样。

②它与添加空白的区别就在于,拉伸的宽或高是可变的,而添加空白的宽度或高度是不变的。例如图。

pyqt5-如何设置盒子布局的空白和拉伸

3、拉伸的注意事项:

①布局在添加控件时的拉伸默认为 stretch=0;

②给布局添加的拉伸,会优先于控件占取布局的空白。

所以假如,控件没有设置拉伸,而控件中间又添加了拉伸的空白,那么控件将被排挤到最小。

例如如图:

可以看到,在标签控件 (拉伸为默认值0 )中间,添加拉伸后,即使拉伸是默认的0,也会把标签控件排挤到最小。

pyqt5-如何设置盒子布局的空白和拉伸

4、给控件设置拉伸因数:setStretchFactor(QWidget, int) 

①第一个参数是控件,第二个参数是拉伸因数。

②如图,给lb1设置拉伸因数10,而其他的控件与空白都是0,所以lb1,占据了所有空白。即使拉伸因数设置为1,也会占据所有空白。

pyqt5-如何设置盒子布局的空白和拉伸

5、当一个布局里嵌套了一个子布局时,给子布局设置拉伸因数:

setStretchFactor(QLayout, int)

第一参数是,子布局,第二参数拉伸因数。

如图,

①给layout_box,添加一个垂直布局,有两个按钮控件。

②给子布局设置了拉伸因子后,其才会跟随窗口缩放。

pyqt5-如何设置盒子布局的空白和拉伸

  • 如何获取拼多多双11开宝箱活动中的宝箱?
  • 人为什么会脸红?
  • 网易云音乐打开锁屏歌词怎么设置
  • 为什么分手总是那么痛?
  • 清唱是什么意思
  • 热门搜索
    哈尔滨市旅游局 朱家角旅游攻略 旅游法实施细则全文 黄鹤楼旅游 旅游时跟妈妈有了关系 凭祥旅游 齐云山旅游 昌都旅游 凤凰旅游住宿 大同旅游攻略