PyQt5:如何打开一个新窗口并关闭当前窗口?

时间:2018-01-20 06:40:46

标签: python pyqt pyqt4 pyqt5

我想问一下,当我在标题中写道时,如何打开一个新窗口并关闭(完全)当前窗口?

有两个.py个文件。它们彼此独立,这意味着它们中的每一个都可以独立运行。

在MyApp.py中有一个按钮。如果单击该按钮,我想关闭当前窗口/文件并打开新窗口/文件。

在下面的代码中,我可以打开新窗口/文件,但旧窗口未关闭。如果我关闭第二个窗口,旧窗口也将关闭。我用我的知识/搜索尝试了一些方法,但没有一个能正常工作。

以下是MyApp.py

的代码
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

import NewApp
# NewApp.py in the same folder
# in NewApp.py there is a class NewApp

qtCreatorFile_MyApp = "F:\\MyApp.ui"

class MyApp(QWidget):
    def __init__(self):
        super(MyApp, self).__init__()
        uic.loadUi(qtCreatorFile_MyApp, self)
        self.show()
        self.btn_inMyApp.clicked.connect(self.closeMyApp_OpenNewApp)

    def closeMyApp_OpenNewApp(self):
        self.Open = NewApp.NewApp()
        self.Open.show()
        # My Problem: How to close the MyApp completely and open NewApp?

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MyApp()
    sys.exit(app.exec_())

NewApp.py具有类似的代码结构。为了这个问题的完整性,我将代码粘贴如下。

qtCreatorFile_NewApp = "F:\\NewApp.ui"

class NewApp(QWidget):
    def __init__(self):
        super(NewApp, self).__init__()
        uic.loadUi(qtCreatorFile_NewApp, self)
        self.show()


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = NewApp()
    sys.exit(app.exec_())

谢谢你的帮助!

0 个答案:

没有答案