1. 程式人生 > >qt QGridLayout網格佈局addWidget函式與拉伸因子

qt QGridLayout網格佈局addWidget函式與拉伸因子

目前用得比較多的佈局是 QGridLayout,它將介面劃分為若干個網格,

而控制元件可以按需要放到對應的格子,確保了控制元件的準確定位。

m_layout->addWidget(m_calender,0,0);   //calendar放在第一行第一列

m_layout->addWidget(m_tblList,0,1);   //table放在第一行第二列

但是我們還需要控制元件在窗體縮放的時候也按比例縮放,

這個時候就需要用到拉伸因子這個東東。拉伸因子決定了窗體尺寸發生改變時,控制元件發生改變的比例。

每個佈局都有相應的拉伸因子設定函式。以下是QGridLayout裡面的設定函式

void setColumnStretch ( int column, int stretch );

void setRowStretch ( int row, int stretch );

具體使用如下

m_layout->setColumnStretch(0,3);
m_layout->setColumnStretch(1,1);

這樣在窗體反正改變的時候,m_calender與m_tblList會按3:1的比例發生改變。

並且,在不進行其他尺寸設定的時候(最大值最小值固定什麼的),控制元件也會以這個比例顯示在介面上。

轉載自http://blog.chinaunix.net/uid-693168-id-3254823.html