1. 程式人生 > >Qt動態建立控制元件並實現佈局

Qt動態建立控制元件並實現佈局

最近搞的一些需求有相關的設計,從網上找來一段程式碼,受到一些啟發,記下來備用。

有相關需求的可以參考

直接上程式碼:

if(icreateControlNum<=display_num_Line)

{
rownum=1;
display_num_Line=icreateControlNum;
}
else
{
//選擇欄目個數除以每行要顯示個數
iitem=icreateControlNum%display_num_Line;
//行數整數
rownum=icreateControlNum/display_num_Line;
if(iitem)
//如果有餘數則向上取整說明最後一行欄目個數小於規定的數目;餘數則是最後一行要顯示的欄目個數
rownum+=1;
}

上邊這一段是確定幾行幾列

下邊是核心的程式碼:

m_gLayout  闌珊佈局

for(inti=0;i<rownum;i++)//行

{
lineEditindex=0;
//如果是最後一次迴圈且最後行元素不是初始display_num_Line個,則重新賦值display_num_Line
if(i+1==rownum&&iitem)
display_num_Line=iitem;
for(intj=0;j<display_num_Line;j++)//每行列數
{
m_gLayout->addWidget(m_labelcreate
.at(itemIndex),i,j+lineEditindex);
m_gLayout->addWidget(m_lineEditcreate.at(itemIndex),i,j+lineEditindex+1);
++itemIndex;
++lineEditindex;
}
}