yu00’s blog

プログラミングに関する備忘録です

QGridLayoutクラス

PyQt5入門 PythonでGUI作成 - yu00’s blog

QGridLayoutクラスはマス目に並べるクラスです.

マス目に並べる

addWidget(widget, row, column)

#! /usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = QWidget()
    
    button1 = QPushButton('1')
    button2 = QPushButton('2')
    button3 = QPushButton('3')
    
    layout = QGridLayout()
    # レイアウトにウィジェットを追加
    layout.addWidget(button1, 0, 0)
    layout.addWidget(button2, 0, 1)
    layout.addWidget(button3, 1, 0)

    # ウィジェットにレイアウトをセット
    window.setLayout(layout)
    
    window.show()
    sys.exit(app.exec_())

f:id:yu00:20150917203356p:plain

複数のマスをまたがって並べる

addWidget(widget, fromRow, fromColumn, rowSpan, columnSpan)

rowSpan,columnSpan:占有する行数・列数

layout.addWidget(button1, 0, 0)
layout.addWidget(button2, 0, 1)
layout.addWidget(button3, 0, 2)
# 2行*3列またがる
layout.addWidget(button4, 1, 0, 2, 3)
layout.addWidget(button5, 1, 3)
layout.addWidget(button6, 2, 3)

f:id:yu00:20150917203225p:plain

特定の行・列にストレッチを設定する

setColumnStretch(column, stretch)

setRowStretch(row, stretch)

layout.setColumnStretch(0, 2)
layout.setColumnStretch(1, 3)
layout.setColumnStretch(2, 2)

f:id:yu00:20150917203959p:plain