網格佈局小部件提供了一個容器,它容許小部件在動態大小的網格中佈局。python
gridlayout = QGridLayout()
向項目中的網格佈局添加小部件app
gridLayout.addWidget() gridLayout.addWidget(widget, row, column) gridLayout.addWidget(widget, row, column, columnspan, alignment)
widget參數表示該部件將被添加到GridLayout的row網格佈局的row和"column"。 行和列的值在相似座標系統上工做,0,0 表示左上角。rowspan和columnspan 的值表示小部件應該跨越多少行和列,最後,alignment參數必須設置爲如下其中一個:佈局
Qt.AlignmentLeft Qt.AlignmentRight Qt.AlignmentHCenter QT.AlignmentJustify
使用如下其中一種方法向網格佈局添加布局:spa
gridlayout.addLayout(widget) gridlayout.addLayout(widget, row, column) gridlayout.addLayout(widget, row, column, rowspan, columnspan, alignment)
給定位置檢索項目經過如下方法實現:code
gridLayout.itemAtPosition(row, coulumn)
默認狀況下,行和列之間沒有間距,能夠經過如下如下方式調整:圖片
Gridlayout.setSpacing(spacing)
另外,垂直和水平間距能夠單獨指定使用:ci
gridlayouot.setHorizontalSpacing(spacing) gridlayout.setVerticalSpacing(spacing)
spacing參數應設置爲一個整數,表示顯示的像素間距數。
行數和列數能夠從容器中得到:get
gridlayout.rowCount() gridlayout.columenCount()
# !/usr/bin/python3 from PyQt5.QtWidgets import \* import sys class Window(QWidget): def __init__(self): QWidget.__init__(self) layout = QGridLayout() self.setLayout(layout) label = QLabel("Label(0, 0)") layout.addWidget(label, 0, 0) label = QLabel("Label(0, 1)") layout.addWidget(label, 0, 1) label = QLabel("Label (1, 0) spanning 2 columns") layout.addWidget(label, 1, 0, 1, 2) label = QLabel("Label (1, 0) soanning 2 rows") layout.addWidget(label, 0, 2, 2, 1) app = QApplication(sys.argv) screen = Window() screen.show() sys.exit(app.exec_())