2

我想像这样切片主窗口 将主窗口分割成 10 个子窗口

我的布局代码如下:

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 );

不幸的是,结果远非预期: 结果不好

但是当我删除下面的句子时:

vWidget->setSizePolicy(QSizePolicy ::Expanding , QSizePolicy ::Expanding );

结果是我的预期。

为何

setSizePolicy(QSizePolicy ::Expanding , QSizePolicy ::Expanding );

会影响QGridLayout吗?

谢谢~

4

1 回答 1

0

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

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

于 2013-05-17T06:31:29.240 回答