QGridLayout 的任务是创建那种类型的结构,为此你必须使用函数:
void QGridLayout::addWidget(QWidget * widget, int fromRow, int
fromColumn, int rowSpan, int columnSpan, Qt::Alignment 对齐 = 0)
这是一个重载函数。
此版本将给定的小部件添加到单元格网格中,跨越多个
行/列。单元格将从 fromRow 开始,fromColumn 跨越
rowSpan 行和 columnSpan 列。小部件将具有给定的
对齐。
如果 rowSpan 和/或 columnSpan 为 -1,则小部件将扩展到
分别是底部和/或右边缘。
例子:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
app = QApplication(sys.argv)
w = QWidget()
glay = QGridLayout(w)
glay.addWidget(QLabel("1"), 0, 0)
glay.addWidget(QLabel("2"), 0, 1, 1, 3)
glay.addWidget(QLabel("3"), 1, 0, 1, 2)
glay.addWidget(QLabel("4"), 1, 2, 1, 2)
qsrand(QTime.currentTime().msec())
for label in w.findChildren(QLabel):
color = QColor(qrand() % 256, qrand() % 256, qrand() % 256)
label.setStyleSheet('.QLabel{{background: rgb({}, {}, {});}}'.format(color.red(), color.green(), color.blue()))
w.show()
sys.exit(app.exec_())