2016-05-30 82 views
0

我的代码:如何删除布局PyQt的

Ui_startscreen.setupUi(self,self.areaplace) 
self.FRAME_BUTTON.mousePressEvent = self.open_sec_view; 
def open_sec_view(self,e): 
    Ui_sec.setupUi(self,self.areaplace); 

欧凯现在我有三个Python文件,第一 - > start-program.py,第二 - > main.py,第三 - > secview.py

start-program.py是带有空白帧的基础QT GUI文件 - > self.areaplace 当程序启动时self.areaplace包含Ui_startscreen(main.py)。 在点击Ui_startscreen - > self.FRAME_BUTTON我需要的时候我使用删除self.areaplace的布局和清晰的视野,但:

self.horizontalLayout.deleteLater() 
self.areaplace.findChild(QtGui.QWidget).deleteLater() 

控制台回我这个错误:

QLayout: Attempting to add QLayout "" to QWidget "secview", which already has a layout 

我知道我必须删除/删除布局,但我不知道如何:/ 当我评论horizo​​ntalLayout每一个工作正常,但我有很多文件,我需要使用函数来删除布局 你能帮我吗? :)

回答

0

我在这个问题上找到的最好的决定是有一个布局例如mainlayout = QHBoxLayout()。作为一种Layout-conteiner。那么你self.setLayout(mainlayout)。然后你可以做一些事情,如self.layout().addLayout(whateverlayoutyouwantedtoseehere),当你需要改变时只需做 self.layout().takeAt(0)self.layout().addLayout(anotherlayoutyouwantedamomentlater)。有可能发生递归摧毁你以前的布局的必要性,它可以做到like that