Python 如何控制Qt/PyQt/PySide网格布局中小部件的大小

Python 如何控制Qt/PyQt/PySide网格布局中小部件的大小,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,我被一个愚蠢但恼人的问题打动了。我想为网格布局上的两个列表小部件设置不同的大小,一个在另一个之上。因此,我想将60%的表单空间设置为上部小部件,40%设置为下部小部件。我尝试使用setRowStretch,但没有成功 这是我的密码: import sys from PyQt4.QtCore import * from PyQt4.QtGui import * def window(): app = QApplication(sys.argv) win = QWidget()

我被一个愚蠢但恼人的问题打动了。我想为网格布局上的两个列表小部件设置不同的大小,一个在另一个之上。因此,我想将60%的表单空间设置为上部小部件,40%设置为下部小部件。我尝试使用setRowStretch,但没有成功

这是我的密码:

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

def window():
    app = QApplication(sys.argv)
    win = QWidget()

    list1 = QListView()
    list2 = QListView()

    grid = QGridLayout()
    grid.setRowStretch(6, 4)
    grid.addWidget(list1)
    grid.setSpacing(2)
    grid.addWidget(list2)

    win.setLayout(grid)
    win.setGeometry(300, 150, 350, 300)
    win.setWindowTitle("Example")
    win.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
   window()

感谢您提供的帮助。

rowStretch方法的第一个参数是行号,第二个参数是拉伸系数。因此,您需要两个调用
行拉伸
,如下所示:

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

def window():
    app = QApplication(sys.argv)
    win = QWidget()

    list1 = QListView()
    list2 = QListView()

    grid = QGridLayout()
    grid.setRowStretch(0, 6)
    grid.setRowStretch(1, 4)
    grid.addWidget(list1)
    grid.setSpacing(2)
    grid.addWidget(list2)

    win.setLayout(grid)
    win.setGeometry(300, 150, 350, 300)
    win.setWindowTitle("Example")
    win.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
   window()

Thabks!文档中没有提到这一点,我也找不到任何相关的例子。很高兴能提供帮助。如果这解决了问题,请单击复选标记接受答案。