PyQt5入門 PythonでGUI作成 - yu00’s blog
QHBoxLayout・QVBoxLayoutはウィジェットを
横・縦に並べるクラスです.
ここではQHBoxLayoutを例に説明します.
横に並べる
addWidget(widget)
サンプルコード
#! /usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout if __name__ == '__main__': app = QApplication(sys.argv) window = QWidget() button1 = QPushButton('1') button2 = QPushButton('2') button3 = QPushButton('3') layout = QHBoxLayout() # レイアウトにウィジェットを追加 layout.addWidget(button1) layout.addWidget(button2) layout.addWidget(button3) # ウィジェットにレイアウトをセット window.setLayout(layout) window.show() sys.exit(app.exec_())
実行例
ストレッチを設定しながら並べる
addWidget(widget, stretch=0)
layout.addWidget(button1, 2) layout.addWidget(button2, 3)
また,追加するレイアウトにもストレッチを設定できます.
addLayout(layout, stretch=0)
vbox = QVBoxLayout()
layout.addLayout(vbox, 2)
表示位置を設定しながら並べる
alignmentを設定することで右寄せや下寄せができます.
addWidget(widget, stretch=0, alignment=0)
from PyQt5.QtCore import Qt ... layout.addWidget(button1, alignment=(Qt.AlignBottom | Qt.AlignRight))
固定長の空白を入れる
addSpacing(size)
レイアウトの最後にストレッチしない
サイズがsizeの空白を追加します.
layout.addWidget(button1) layout.addWidget(button2) # サイズが20の空白を追加 layout.addSpacing(20) layout.addWidget(button3)
伸縮する空白を入れる
addStretch(stretch)
レイアウトの最後にストレッチがstretch
の空白を追加します.
layout.addWidget(button1, 2) layout.addWidget(button2, 2) # サイズ1/2の空白を追加 layout.addStretch(1) layout.addWidget(button3, 2)