Я создал два интерфейса пользователя с помощью Qt Designer, импортировал их в мой скрипт и установил их обычным способом, используя метод setupUi (). При нажатии кнопки и выполнении соответствующего метода загружается новый пользовательский интерфейс, но все виджеты и соединения из старого сохраняются.
Как правильно удалить подключения, а затем удалить все текущие дочерние элементы MainWindow, чтобы остались только виджеты и подключения нового пользовательского интерфейса? Ниже приведен упрощенный пример того, что я делаю.
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_Forward и нажатия кнопки Ui_Backward устанавливается правильно, но все виджеты из Ui_Forward все еще находятся в списке дочерних элементов MainWindow.