1、这里实现一个4列多行的Grid布局代码片段。
QList<QSharedPointer<stDeviceInfo>> lDeviceInfos = AbleDevicesManage::GetInstance()->GetDevicesInfo();
int nDeviceColNum = 4;
int nDeviceIndex = 0;
int nDeviceNum = lDeviceInfos.size();
m_pGridlayout->setMargin(20); //设置每列间距
for (int i = 0; i < nDeviceColNum; i++)
{
m_pGridlayout->setColumnMinimumWidth(i,180); //设置每列最小尺寸
}
qDebug() << "rows" << m_pGridlayout->verticalSpacing() << " cols" << m_pGridlayout->horizontalSpacing();
m_pGridlayout->setVerticalSpacing(10);
m_pGridlayout->setHorizontalSpacing(30);
qDebug() << "height" << (nDeviceNum/nDeviceColNum)*150;
ui->scrollAreaWidgetContents->setMinimumSize(QSize(701,(nDeviceNum/nDeviceColNum)*150)); //设置滚动轴的有效区域
ui->scrollAreaWidgetContents->setLayout(m_pGridlayout); //设置LayOut必须在填充Layout之前调用,不然Layout的默认大小不会参照scrollAreaWidgetContents的大小
while(