【发布时间】:2010-10-26 22:01:22
【问题描述】:
我使用 Qt 设计器创建了两个 ui,将它们导入我的脚本并使用 setupUi() 方法以正常方式设置它们。当点击一个按钮并执行适当的方法时,新的 ui 被加载,但旧的所有小部件和连接仍然存在。
删除连接然后删除所有 MainWindow 的当前子项以便只保留新 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_Forward 并按下按钮,Ui_Backward 设置正确,但来自 Ui_Forward 的所有小部件仍在 MainWindow 的子级列表中。
【问题讨论】: