UI上有一个Qwidget
我想在上面放个网格布局
布局里面放按钮
根据按钮的数量设置widget的尺寸
用代码方式实现
简单搞了一下,你的需求应该是跟这样差不多吧,那就点个采纳吧!
QWidget w;
QPushButton *pb,*pb1,*pb2,*pb3,*pb4,*pb5,*pb6;
pb=new QPushButton("AAA");
pb1=new QPushButton("BBB");
pb2=new QPushButton("CCC");
pb3=new QPushButton("DDD");
pb4=new QPushButton("EEE");
pb5=new QPushButton("FFF");
pb6=new QPushButton("GGG");
QGridLayout *pg=new QGridLayout;
pg->setVerticalSpacing(22); //设置各子部件之间的垂直间距,不会为该间距分配索引。
pg->addWidget(pb,0,0,1,1); //把按钮pb添加到第0行0列,该按钮占据1行和1列单元格。
pg->addWidget(pb1,0,1,1,1);
pg->addWidget(pb2,1,0,1,3); //该按钮占据3列单元格的宽度
pg->addWidget(pb3,2,0,1,1,Qt::AlignBottom|Qt::AlignLeft); //pb3在其单元格内左下对齐
pg->addWidget(pb4,2,1,1,1);
pg->addWidget(pb5,2,2,1,1,Qt::AlignTop|Qt::AlignRight);
pg->addWidget(pb6,3,0,1,1);
w.setLayout(pg);
pg->addWidget(pb,0,0,1,1);
pg->addWidget(pb1,0,1,1,1);
这样吧,将按钮每行两个添加到布局中,然后都是占据一行