Python PyQt4:从其父级删除子级

Python PyQt4:从其父级删除子级,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,我使用Qt设计器创建了两个UI,将它们导入到脚本中,并使用setupUi()方法以正常方式设置它们。单击按钮并执行适当的方法后,将加载新的ui,但旧ui中的所有小部件和连接都将保留 删除连接,然后删除主窗口的所有当前子窗口,以便只保留新ui的小部件和连接的正确方法是什么?下面是我正在做的一个简单例子 from PyQt4 import QtGui, QtCore from Models import * from Backward import Ui_Backward from For

我使用Qt设计器创建了两个UI,将它们导入到脚本中,并使用setupUi()方法以正常方式设置它们。单击按钮并执行适当的方法后,将加载新的ui,但旧ui中的所有小部件和连接都将保留

删除连接,然后删除主窗口的所有当前子窗口,以便只保留新ui的小部件和连接的正确方法是什么?下面是我正在做的一个简单例子

from PyQt4    import QtGui, QtCore
from Models   import *
from Backward import Ui_Backward
from Forward  import Ui_Forward

class MainWindow( QtGui.QMainWindow ):
  def __init__( self ):
    QtGui.QMainWindow.__init__( self, None )

    self.move_forward()

  def move_forward( self ):      
    self.ui = Ui_Forward()
    self.ui.setupUi( self )
    self.connect( self.ui.Button, QtCore.SIGNAL('clicked()'), self.move_backward )

  def move_backward( self ):      
    self.ui = Ui_Backward()
    self.ui.setupUi( self )
    self.connect( self.ui.Button, QtCore.SIGNAL('clicked()'), self.move_forward )

一旦设置了Ui\u Forward并按下按钮,Ui\u Backward将正确设置,但Ui\u Forward中的所有小部件仍在主窗口的子窗口列表中。

我正在尝试想象您的目标是什么。如果您试图实现一个向导类型的应用程序,其中屏幕显示一组控件,然后切换到另一个带有向前和向后按钮的屏幕,那么您应该尝试使用
QStackedWidget


QStackedWidget
将允许您定义一个或多个“页面”并在它们之间切换。您可以独立设计每个页面,而不必(必须)将控件从一个页面移动到下一个页面。

我的应用程序有几个不同的视图,因此我尝试创建一种有组织的方式在它们之间进行转换。看来QStackedWidget只需稍加编辑就可以满足我的需要,谢谢。