关闭窗口后如何删除QWidget实例?

时间:2016-08-09 09:48:15

标签: python-2.7 user-interface pyqt

使用PyQt处理基本GUI。 我有一个启动主窗口(QMainWindow)。 通过单击它,将打开新窗口(QWidget)。 点击它后,下一个窗口(QWidget)打开,依此类推。 每个QWidget都包含两个按钮(但在我的情况下是标签):back和quit。

后退按钮(标签)应该只显示上一个窗口。 退出按钮应该删除QWidgets的所有实例,只显示启动主窗口而内存中没有任何先前的QWidgets实例。

我的代码:

class Ui_MainWindow(object):

    def setupUi(self, MainWindow, picturesPath):
        ....window properties...

        self.label.mousePressEvent = self.labelClicked
        self.nextWindow=None
        self.nextWindowInst=None

    def labelClicked(self, event):
        self.nextWindow=QtGui.QWidget()
        self.nextWindowInst=Ui_Widget1()
        self.nextWindowInst.setupUi(self.nextWindow)
        self.nextWindow.show()

class Ui_Widget1(QtGui.QWidget):

    def setupUi(self):
        ...window properties...
        self.labelStart.mousePressEvent = self.labelPocetakClicked

    def labelStartClicked(self, event):
        ...somehow to delete UI_Widget1 instance that was created in main window...

def main():
    import sys
    app = QtGui.QApplication(sys.argv)
    MainWindow=QtGui.QMainWindow()
    ui=Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()

    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

我想,当我点击Ui_Widget1实例上的标签labelStart来关闭显示的QWidget窗口时,还要删除Ui_Widget1实例。

0 个答案:

没有答案