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.