Qt4.8使用QGridLayout时setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)的效果

Qt4.8使用QGridLayout时setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)的效果,layout,qt4,Layout,Qt4,我想把主窗口切成这样 我的布局代码如下: QGridLayout *gLayout = new QGridLayout (); viewWidget->setStyleSheet("background-color: #333;" ); for ( i = 0; i < m_numOfVideoWidget; i++) { QWidget *vWidget = new QWidget(viewWidget); vWidget->setSizePolicy

我想把主窗口切成这样

我的布局代码如下:

QGridLayout *gLayout = new QGridLayout ();

viewWidget->setStyleSheet("background-color: #333;" );
for ( i = 0; i < m_numOfVideoWidget; i++)
{
     QWidget *vWidget = new QWidget(viewWidget);
     vWidget->setSizePolicy(QSizePolicy ::Expanding , QSizePolicy ::Expanding );
     videoList.append( vWidget);
}
index = 0;
for ( j = 0; j < 4; j += 2)
{
       gLayout->addWidget( videoList[ index++], 0, j, 2, 2);
}
for ( i = 2; i < 4; i++)
      for ( j = 0; j < 4; j++)
            gLayout-> addWidget( videoList[ index++], i, j);
viewWidget->setLayout(gLayout );
结果是我所期望的

为什么

setSizePolicy(QSizePolicy ::Expanding , QSizePolicy ::Expanding );
会影响QGridLayout吗


谢谢~

您似乎没有设置vWidget的sizePolicy,而是设置“this”小部件的sizePolicy。这是故意的吗


我的猜测是网格布局试图影响一个大小策略,它是内容大小策略的总和,而设置“this”小部件的大小策略会干扰这一点。

谢谢大家的关注。我更新源代码,添加“vWidget->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)”
setSizePolicy(QSizePolicy ::Expanding , QSizePolicy ::Expanding );