Qt - 改变QWidget布局

时间:2010-06-07 14:20:44

标签: qt layout qt4 qwidget

我们假设我们有QWidgetQLayout名为general_layout,其中包含其他小部件和布局。 general_layout设置为QWidget布局,如下所示:

setLayout(general_layout)

现在我应该更改QWidget的内容。我怎样才能做到这一点?我尝试删除并为QWidget创建新布局,并将新布局设置为QWidget的布局,但无法成功完成我的意图。

这是我的代码:

delete general_layout;
general_layout = new QHBoxLayout;
general_layout->addLayout(some_layout);
myQWidget->setLayout(general_layout);

1 个答案:

答案 0 :(得分:14)

问题是删除布局时不会破坏布局的小部件。这导致myQWidget的所有子窗口小部件仍然存在,无需布局。

解决方案很简单:添加

qDeleteAll(myQWidget->children());

delete general_layout;