我们假设我们有QWidget
和QLayout
名为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);
答案 0 :(得分:14)
问题是删除布局时不会破坏布局的小部件。这导致myQWidget的所有子窗口小部件仍然存在,无需布局。
解决方案很简单:添加
qDeleteAll(myQWidget->children());
后
delete general_layout;