Python 重新设置小部件pyqt的布局

Python 重新设置小部件pyqt的布局,python,c++,qt,layout,pyqt,Python,C++,Qt,Layout,Pyqt,欢迎光临 我想我正在尝试使用PyQT5创建自己的gui应用程序。主窗口由菜单栏、状态栏和中心小部件组成。中心小部件是QTabWidget。在每个选项卡中都有自己的workplace小部件 程序本身允许创建OpenFOAM阶段的管道,为每个过程设置选项并启动它。这一切都将在一个小部件中完成,而这个小部件是选项卡中唯一的小部件 我遇到的问题与QLayout有关。我在启动任务的每个步骤上都使用QHBoxLayouts和QVBoxLayouts组合。当我创建初始self.setLayoutsomelay

欢迎光临

我想我正在尝试使用PyQT5创建自己的gui应用程序。主窗口由菜单栏、状态栏和中心小部件组成。中心小部件是QTabWidget。在每个选项卡中都有自己的workplace小部件

程序本身允许创建OpenFOAM阶段的管道,为每个过程设置选项并启动它。这一切都将在一个小部件中完成,而这个小部件是选项卡中唯一的小部件

我遇到的问题与QLayout有关。我在启动任务的每个步骤上都使用QHBoxLayouts和QVBoxLayouts组合。当我创建初始self.setLayoutsomelayout1时,它工作正常。但是,当我在这个小部件的类self.setLayoutsomelayout2、self.setLayoutsomelayout3等的不同方法中进行下一步时,新的布局将被绘制在所有以前布局的顶部。除此之外:新布局未覆盖的以前布局的所有图层部分都保持活动状态

还没有找到任何工作方法来禁用小部件的旧布局,或者更好的方法:删除它。已经尝试创建1个元素的布局容器,并使用self.layout.removietem0和self.layout.setLayoutnewlayout或.inserLayoutnewlayout对其进行影响,但没有区别

是否有任何工作方法可以更改小部件的布局,而不在背面显示旧的布局

谢谢你的帮助

p、 美国:self.setStyleSheetQWidget{背景色:RGB255255}
QObjectCleanupHandler.addself.layout都不起作用。

确保从旧布局中删除小部件的方法是使用sip.deletesomewidget。这将删除C++对象本身,因为有时它会在它自己的

上存在。@ EkHuMoRo我会试试,然后留下回复,谢谢!PS:若要删除版面及其所有小部件,请参阅。@ekhumoro-Hm,谢谢。这似乎奏效了。我的意思是清除布局。奇怪的事实是,我的小部件的底层仍然有一个隐私。新的在上面。除此之外,它仍然处于活动状态。。。我确信您的方法清除了layout-在那里插入了几个printself.layout.count。但仍然无法摆脱gui本身的旧布局。神秘。尝试使用堆栈小部件。制作所有小部件,然后为需要更改布局的每个步骤设置堆栈小部件的当前索引。