2016-07-04 73 views
1

我感到一個愚蠢但惱人的問題。我想爲網格佈局上的兩個列表小部件設置不同的大小,一個在另一個之上。所以,我希望將60%的表單空間設置爲上方的小部件,將40%的部分設置爲下方的小部件。我試圖使用setRowStretch,但沒有成功。如何控制Qt/PyQt/PySide網格佈局中窗口部件的大小

這裏是我的代碼:

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() 

感謝您可以提供任何幫助。

回答

2

rowStretch方法的第一個參數是行號,第二個參數是拉伸因子。所以你需要兩個電話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() 
+0

Thabks!文件沒有提到,我也找不到任何相關的例子。 – maurobio

+0

很高興能有所幫助。如果這解決了問題,請點擊複選標記接受答案。 – titusjan

相關問題