PyQt5入門 PythonでGUI作成 - yu00’s blog
レイアウトとは
レイアウトはウィジェットを簡単に配置する仕組みです.
ウィジェットを横に並べたり,マス目に並べたりできます.
ウィジェットの位置は自動的に計算されるので,
自分でピクセルの位置を設定する必要はありません.
レイアウトの例
例として,ウィジェットを横に並べるQHBoxLayoutを使って
ボタンを3つ横に並べてみます.
サンプルコード
#! /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_())
レイアウトの組み合わせ
レイアウトを複数組み合わせることによって複雑なレイアウトを作ることができます.
例として,横に配置するQHBoxLayoutと縦に配置するQVBoxLayoutを
組み合わせてみます.
サンプルコード
#! /usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QHBoxLayout, QVBoxLayout) if __name__ == '__main__': app = QApplication(sys.argv) window = QWidget() button1 = QPushButton('1') button2 = QPushButton('2') button3 = QPushButton('3') # ボタン配置 hbox = QHBoxLayout() hbox.addWidget(button1) vbox = QVBoxLayout() vbox.addWidget(button2) vbox.addWidget(button3) hbox.addLayout(vbox) window.setLayout(hbox) window.show() sys.exit(app.exec_())
実行例
このようにaddLayoutを使うことでレイアウトに
別のレイアウトを追加できます.