王磊的程序员之路 2019-06-28
网格布局小部件提供了一个容器,它允许小部件在动态大小的网格中布局。
gridlayout = QGridLayout()
向项目中的网格布局添加小部件
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
使用以下其中一种方法向网格布局添加布局:
gridlayout.addLayout(widget) gridlayout.addLayout(widget, row, column) gridlayout.addLayout(widget, row, column, rowspan, columnspan, alignment)
给定位置检索项目通过以下方法实现:
gridLayout.itemAtPosition(row, coulumn)
默认情况下,行和列之间没有间距,可以通过以下以下方式调整:
Gridlayout.setSpacing(spacing)
另外,垂直和水平间距可以单独指定使用:
gridlayouot.setHorizontalSpacing(spacing) gridlayout.setVerticalSpacing(spacing)
spacing参数应设置为一个整数,表示显示的像素间距数。
行数和列数可以从容器中获得:
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_())