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

标签 layout qt4

我想像这样切片主窗口 slice the main windows to 10 sub-windows

我的布局代码如下:

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

不幸的是,结果与预期相去甚远: bad result

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

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

结果是我的预期。

为什么

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

会影响QGridLayout吗?

谢谢~

最佳答案

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

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

关于layout - Qt4.8 setSizePolicy(QSizePolicy::Expanding , QSizePolicy::Expanding) 当我使用QGridLayout时的效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16538057/

相关文章:

php - 文件未加载到 php 文件中

Android Relative Layout循环依赖错误

html - 960 网格对齐问题

java - 将 layout_above 指向外部 ID?

c++ - 在 Qt 中制作关于 GUI 窗口的游戏

c++ - 如何在 Qt 中做一个扩展到他的布局之上的小部件

ios - 自定义布局 UITableViewHeaderFooterView

c++ - Qt如何捕获指示所有gui元素准备就绪的事件

Qt:QWebview 在另一台机器上不显示 jpg、gif、png 图像

c++ - 将 QPixmap 保存为 JPEG 失败(Qt 4.5)