PyQt(Python+Qt)学习随笔:Qt Designer中spacer部件的orientation属性

在Designer的spacers部件中有2个部件,分别是Horizontal Spacer和Vertical Spacer,这两个部件都有orientation属性,表示Spacer部件的方向。
如图:
在这里插入图片描述
第一个布局中的Spacer部件是Horizontal Spacer,方向是水平方向,第二个布局中的Spacer部件是Vertical Spacer部件,方向是垂直方向。

我们把这两个布局中的Spacer部件的方向进行调换,将水平部件的方向改为垂直,垂直部件的方向改为水平,如图:
在这里插入图片描述
可以看到方向调整之后,两个Spacer部件的效果也调换了,我们再来看看UI界面文件生成的代码:
第一种情况生成的代码分别为:

   spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
    self.horizontalLayout_5.addItem(spacerItem)
   .......
   spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
   self.horizontalLayout_6.addItem(spacerItem1)
   

第二种情况生成的代码为:

spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.horizontalLayout_5.addItem(spacerItem)
.......
 spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
 self.horizontalLayout_6.addItem(spacerItem1)

可以看到并没有方向orientation属性的直接代码,而是通过将宽度和高度两个值对调,同时sizePolicy的宽带和高度的sizePolicy也进行了对调。

由此可见,无论是Horizontal Spacer还是Vertical Spacer,以及其设置不同的方向,本质上都是一致的,都是一个QSpacerItem类型的对象,在哪个方向扩展就将另一个方向的值设置小一点,并将自己方向的扩展测了设置为sizeType属性指定值,另一个方向的大小策略设置为Minimum。

老猿Python,跟老猿学Python!

博文目录

博客地址

原文地址:https://www.cnblogs.com/LaoYuanPython/p/11931612.html