如何从主布局中删除所有项目?

时间:2019-03-31 11:10:23

标签: c++ qt layout widget

我有带有QWidget * mainWidget的MainWindow。此小部件具有设置布局-QLayout * mainLayout。当我按下按钮“下一步”时,我想清除所有项目中的mainLayout(我需要再次使用mainLayout,但要使用不同的项目),并且当我再次按下按钮“ Back”时,我需要清除布局并与其他项目一起使用。

我尝试通过mainWidget-> layout()-> TakeAt(0)使用while循环,但是它不起作用(我认为我的while循环存在问题,因为我的mainLayout有几行和几行)。我是初学者,在了解内存分配等方面遇到问题。

1 个答案:

答案 0 :(得分:0)

删除所有小部件:它们自动将自己从布局中删除。您还可以在主窗口小部件上设置不同的布局,然后向其添加新的窗口小部件。移至上一页时,在其上设置上一版面。不过,您必须管理这些小部件的可见性:它们仍然可见。

但这不是必需的:每个页面都应该是其自己的窗口小部件,您希望在显示主窗口小部件时将其作为父窗口小部件,而在将其隐藏时将其取消父级。然后,主布局可以是任何简单的布局,例如multiselect,因为它只包含一个小部件-当前页面。

然后:您确定没有支持小部件页面的小部件或布局吗?查看文档,您可能会感到惊喜:)