盒子佈局相似於網格佈局, 可是它僅支持單行或一列小部件,具體取決於方向,但它會動態調整其包含的數量或部件的大小。python
boxlayout = QBoxLayout()
使用以方法將小部件插入到BoxLayout中:app
boxlayout.addWidget(widget, stretch, alignment) boxlayout.insertWidget(index, widget, stretch, alignment)
insertWidget方法中的index表示應該放置子部件的位置。widget參數是添加到BoxLayout的子部件,stretch的值應該設置爲一個整數,表示子部件伸縮的數值,最後,alignment的值能夠設置爲如下之一:佈局
Qt.AlignmentLeft Qt.AlignmentRight Qt.AlignmentHCenter Qt.AlignmentJustify
佈局對象經過其它方法添加到BoxLayou中:spa
boxlayout.addLayout(layout, stretch) boxlayout.insertLayout(index, layout, stretch)
每一個子部件之間的像素間距默認爲零,可是能夠經過如下方式配置:code
boxlayout.setSpacing(spacing)
間距也能夠經過如下方式添加到普通窗口小部件中:對象
boxlayout.addSpacing(spacing) boxlayout.indterSpacing(index, spacing)
spacing的值表示的是要顯示的像素間距的數量,.instertSpacing()方法還須要一個index, 表示的是插入該間距的位置.BoxLayou的方向能夠經過如下方式設置:圖片
boxlayout.setDirection(direction)
direction參數必須設置爲如下之一:ci
QBoxLayout.LeftToRight QBoxLayout.RightToLeft QBoxLayout.TopToBottom QBoxLayout.BottomToTop
# !/usr/bin/python from PyQt5.QtWidgets import * import sys class Window(QWidget): def __init__(self): QWidget.__init__(self) layout = QBoxLayout(QBoxLayout.LeftToRight) self.setLayout(layout) label = QLabel("Label 1") layout.addWidget(label, 0) label1 = QLabel("Label 2") layout.addWidget(label1, 0 ) layout2 = QBoxLayout(QBoxLayout.TopToBottom) layout.addLayout(layout2) label = QLabel("Label 3") layout2.addWidget(label, 0) label = QLabel("Label 4") layout2.addWidget(label, 0) app = QApplication(sys.argv) screen = Window() screen.show() sys.exit(app.exec_())