题
让我们考虑一下我们有一个 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);
解决方案
问题在于,布局的小部件在删除布局时不会被破坏。这导致所有Myqwidget的儿童小部件仍在存在,无论是没有布局。
解决方案很简单:添加一个
qDeleteAll(myQWidget->children());
后
delete general_layout;
不隶属于 StackOverflow