填充 Layout 的多余部分

1. 使用QSpaceritem填充布局的多余部分,但当试图 delete QSpaceritem 对象时,程序就出错。代码如下:
   1:  QHBoxLayout *layout = new QHBoxLayout();
   2:  QSpacerItem *spacer = new QSpacerItem();
   3:  layout ->addItem(spacer);
   4:  spacerList.append(spacer); 
   5:   
   6:  ...
   7:   
   8:  while(!spacerList.isEmpty())
   9:  {
  10:      delete spacerList.takeFirst();
  11:  }

为什么会这样呢?

PS: 会删除spacer是因为这些是动态生成的,在同一个Layout里面切换内容时,需要删除掉Layout本来的内容。

2. 因为上面问题还没有解决,所以使用了另一种方法:

   1:  QWidget* spacer = new QWidget();
   2:  spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);

创建上面一个 widget 来代替 spacer, Lucky, it works perfectly.

 

Technorati Tags: Qt,QSpaceritem,layout

posted @ 2011-04-20 13:29  zh.ethan  阅读(492)  评论(0编辑  收藏  举报