qt QGridLayout网格布局addWidget函数与拉伸因子

  • Post author:
  • Post category:其他


目前用得比较多的布局是 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