Qt网格布局和水平、垂直布局类似,QGridLayout将控件布局在网格中。QGridLayout和QHBoxLayout类似,可以插入Widget、插入子Layout、设置拉伸系数等,不同的是QGridLayout多了一个行、列的概念。在插入widget、插入子Layout、设置拉伸系数时都需要规定行或列。如果说QHBoxLayout和QVBoxLayout是建立在一维坐标系上的,那QGridLayout就是建立在二维坐标系上的。
基本方法
插入widget
void addWidget(QWidget *widget, int row, int column, Qt::Alignment alignment = ...)
void addWidget(QWidget *widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = ...)
其中方法2在设置了行列的同时,还设置了行跨度和列跨度。意思是一个widget可以设置为占据多行多列,而不是只能占据单行单列(类似于Excel中合并表格)。
插入layout
void addItem(QLayoutItem *item, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment alignment = ...)
void addLayout(QLayout *layout, int row, int column, Qt::Alignment alignment = ...)
void addLayout(QLayout *l