2016-09-16 2 views
1

저는 Windows 7 및 Python 2.7에서 간단한 PyQt 앱을 시작했습니다. 2 개의 버튼과 테이블이 있습니다. Apple 단추는 주황색 단추보다 5 배 더 커야하며 표는 Apple 단추와 동일한 높이 여야합니다.QGridLayout에서 PyQT 버튼의 크기가 잘못되었습니다.

그러나 높이를 정의하기 위해 grid.addWidget(appleBtn, 0, 0, 5, 1)을 사용 했음에도 불구하고 두 단추 모두 동일한 높이로 그려져 있습니다.

제안 사항?

enter image description here

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


def main(): 

    app  = QApplication(sys.argv) 
    w  = QTabWidget() 

    # Tab 
    grid = QGridLayout() 
    tab = QWidget() 
    tab.setLayout(grid) 
    w.addTab(tab,"Hello World") 


    # Button 1 
    appleBtn = QPushButton("Apples") 
    appleBtn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) 
    grid.addWidget(appleBtn, 0, 0, 5, 1) 


    # Button 1 
    orangeBtn = QPushButton("Oranges") 
    appleBtn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) 
    grid.addWidget(orangeBtn, 5, 0, 1, 1) 


    # Table 
    fruitTable = QTableWidget() 
    fruitTable.setRowCount(5) 
    fruitTable.setColumnCount(2) 
    fruitTable.setHorizontalHeaderLabels(QString("Fruit;Color;").split(";")) 
    fruitTable.horizontalHeader().setResizeMode(QHeaderView.Stretch) 
    grid.addWidget(fruitTable, 6, 0, 1, 1) 


    w.resize(400,300) 
    w.setWindowTitle('Test') 
    w.show() 
    sys.exit(app.exec_()) 


main() 

답변

1

addWidget 방법은 당신이하지 가정 방식으로 작동하지 않습니다. 두 번째와 세 번째 인수는 행/열을 지정하고 세 번째와 네 번째는 몇 개의 행/열 범위를 지정합니다.

비례 높이를 지정하는 올바른 방법으로 setRowStretch이다

grid.addWidget(appleBtn, 0, 0) 
grid.setRowStretch(0, 5) 
... 
grid.addWidget(orangeBtn, 1, 0) 
... 
grid.addWidget(fruitTable, 2, 0) 
grid.setRowStretch(2, 5) 
관련 문제