2016-09-16 7 views
1

Windows 7とPython 2.7でPyQtアプリケーションを開始しました。 2つのボタンとテーブルがあります。アップルボタンは、オレンジ色のボタンより5倍高く、テーブルはアップルボタンと同じ高さにする必要があります。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方法は、あなたはそれがないと仮定した方法では動作しません。 2番目と3番目の引数は行/列を指定し、3番目と4番目は行数を指定します。

比例の高さを指定するための正しい方法はsetRowStretchである:

grid.addWidget(appleBtn, 0, 0) 
grid.setRowStretch(0, 5) 
... 
grid.addWidget(orangeBtn, 1, 0) 
... 
grid.addWidget(fruitTable, 2, 0) 
grid.setRowStretch(2, 5) 
関連する問題