PyQt-QBoxLayoutクラス

*QBoxLayout* クラスは、ウィジェットを垂直または水平に並べます。 その派生クラスは、 *QVBoxLayout* (ウィジェットを垂直に配置するため)および *QHBoxLayout* (ウィジェットを水平に配置するため)です。 次の表は、QBoxLayoutクラスの重要なメソッドを示しています-
Sr.No. Methods & Description
1

addWidget()

BoxLayoutにウィジェットを追加します

2

addStretch()

空の伸縮可能なボックスを作成します

3

addLayout()

別のネストされたレイアウトを追加する

例1

ここでは、2つのボタンが垂直ボックスレイアウトに追加されます。 addStretch()メソッドにより、それらの間に伸縮可能な空のスペースが追加されます。 したがって、最上位ウィンドウのサイズを変更すると、ボタンの位置が自動的に再配置されます。

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

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")

   vbox = QVBoxLayout()
   vbox.addWidget(b1)
   vbox.addStretch()
   vbox.addWidget(b2)
   win.setLayout(vbox)

   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

上記のコードは、次の出力を生成します-

例1

例2

この例では、水平ボックスレイアウトを使用しています。 addStretch()メソッドは、2つのボタンオブジェクトの間に伸縮可能な空のスペースを挿入します。 したがって、ウィンドウのサイズが変更されると、ボタンのサイズと位置が動的に変更されます。

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

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")

   hbox = QHBoxLayout()

   hbox.addWidget(b1)
   hbox.addStretch()
   hbox.addWidget(b2)
   win.setLayout(hbox)
   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

上記のコードは、次の出力を生成します-

例2

実施例3

この例は、レイアウトをネストする方法を示しています。 ここでは、2つのボタンが垂直ボックスレイアウトに追加されます。 次に、2つのボタンと伸縮可能な空のスペースを持つ水平ボックスレイアウトオブジェクトが追加されます。 最後に、垂直ボックスレイアウトオブジェクトがsetLayout()メソッドによってトップレベルウィンドウに適用されます。

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

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")

   vbox = QVBoxLayout()
   vbox.addWidget(b1)
   vbox.addStretch()
   vbox.addWidget(b2)
   hbox = QHBoxLayout()

   b3 = QPushButton("Button3")
   b4 = QPushButton("Button4")
   hbox.addWidget(b3)
   hbox.addStretch()
   hbox.addWidget(b4)

   vbox.addStretch()
   vbox.addLayout(hbox)
   win.setLayout(vbox)

   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

上記のコードは、次の出力を生成します-

例3