• 5978阅读
  • 0回复

[提问]Qt4.8 setSizePolicy(QSizePolicy ::Expanding , QSizePolicy ::Expanding)导致QGridLayout不正确显示 [复制链接]

上一主题 下一主题
离线ajaxhe
 
只看楼主 倒序阅读 楼主  发表于: 2013-05-14
源程序部分代码如下,将主窗口切分成10个子窗口

  1. QGridLayout *gLayout = new QGridLayout ();
  2. viewWidget-> setStyleSheet("background-color: #333;" );
  3. for ( i = 0; i < m_numOfVideoWidget; i++)
  4. {
  5.      QWidget *vWidget = new QWidget(viewWidget);
  6.      setSizePolicy(QSizePolicy ::Expanding , QSizePolicy ::Expanding );
  7.      videoList. append( vWidget);
  8. }
  9. index = 0;
  10. for ( j = 0; j < 4; j += 2)
  11. {
  12.        gLayout-> addWidget( videoList[ index++], 0, j, 2, 2);
  13. }
  14. for ( i = 2; i < 4; i++)
  15.       for ( j = 0; j < 4; j++)
  16.             gLayout-> addWidget( videoList[ index++], i, j);
  17. viewWidget->setLayout (gLayout );

预期效果应该是:


很不幸,程序没有按照我的想法来,实际显示如下:


在注释掉
  1. setSizePolicy (QSizePolicy ::Expanding , QSizePolicy ::Expanding );

一句后,程序能够按照预期效果显示。


为什么setSizePolicy会影响到QGridLayout布局
谢谢~
快速回复
限100 字节
 
上一个 下一个