PyQt,如何改变BoxLayout的权重(大小)

4
我有一个GUI布局,如图片所示。 enter image description here 目前Sublayout1和Sublayout2的大小相等。但是我想让Sublayout1的宽度变小,拉伸Sublayout2的宽度变大。是否有一种动态的方法来实现,而不是设置固定大小。就像在Android Studio中,您可以设置布局内元素的权重一样。
同时,影响大小不应该影响Bottomlayout。非常感谢您的帮助。代码片段如下:
sublayout1 = QtGui.QVBoxLayout()
sublayout2 = QtGui.QVBoxLayout()
plotBox = QtGui.QHBoxLayout()
plotBox.addLayout(sublayout1)
plotBox.addLayout(sublayout2) 
bottomlayout = QtGui.QHBoxLayout()
mainlayout.addLayout(plotBox)
mainlayout.addLayout(bottomlayout)
1个回答

12

使用传递给QBoxLayout::addLayoutstretch参数。

sublayout1 = QtGui.QVBoxLayout()
sublayout2 = QtGui.QVBoxLayout()
plotBox = QtGui.QHBoxLayout()
plotBox.addLayout(sublayout1, 1)
plotBox.addLayout(sublayout2, 2)
bottomlayout = QtGui.QHBoxLayout()
mainlayout.addLayout(plotBox)
mainlayout.addLayout(bottomlayout)
在上述代码中,sublayout2 的伸展性是 sublayout1 的两倍,因此应该分配更多的空间。

谢谢!这正是我在寻找的。我将其添加到plotBox布局中,它完美地工作了。但是,当我尝试使用垂直的mainlayout时,我将stretch放在底部2行上。它没有改变任何东西。垂直布局是否有不同的调整stretch的方法? - J_yang
假设mainlayout只是一个垂直对齐的QBoxLayout,那么同样的技术应该可以正常工作。不确定为什么不行。 - G.M.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接