У меня есть 3 окна GUI PyQt5, но когда я закрываю первые 2 GUI, он показывает ошибку «NameError: имя 'MainWindow' не определено» - PullRequest
0 голосов
/ 28 февраля 2019

Так что это мой процесс графического интерфейса.

main.py -> dashboard.py -> output.py

Он работает хорошо до dashboard.py, но когда я нажимаю кнопку, чтобы перейти к окну output.py, он показывает мне ошибку, когда янажимаю на кнопку, чтобы перейти к окну output.py?

"NameError: имя 'MainWindow' не определено".

Может кто-нибудь сказать мне, что не так?с моим кодом, и это будет здорово, если вы, ребята, можете указать мою ошибку.

Это код для main.py

from dashboard import Dashboard

class Ui_MainWindow(object):

    def openWindow(self):
        self.window = QtWidgets.QMainWindow()
        self.ui = Dashboard()
        self.ui.setupUiDashboard(self.window)
        MainWindow.hide()
        self.window.show()

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(659, 458)
        MainWindow.setMinimumSize(QtCore.QSize(659, 458))
        MainWindow.setMaximumSize(QtCore.QSize(659, 458))

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "College Program Identifier"))
        self.label_2.setText(_translate("MainWindow", ""))
        self.label_3.setText(_translate("MainWindow", "Welcome"))
        self.label.setText(_translate("MainWindow", "to"))
        self.label_4.setText(_translate("MainWindow", "College Program Classifier"))
        self.pushButton.setText(_translate("MainWindow", "Let\'s begin"))

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

Это код для dashboard.py

from Output import Output

class Dashboard(object):

    def openWindow(self):
        self.window = QtWidgets.QMainWindow()
        self.ui = Output()
        self.ui.setupUiOutput(self.window)
        self.window.show()
        MainWindow.close()

    def setupUiDashboard(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(802, 517)
        MainWindow.setMinimumSize(QtCore.QSize(802, 517))
        MainWindow.setMaximumSize(QtCore.QSize(802, 517))
        MainWindow.setStyleSheet("background-color: rgb(221, 221, 221);")

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Dashboard()
    ui.setupUiDashboard(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

и это код для output.py

class Output(object):

    def close(self):
        self.window = QtWidgets.QMainWindow()
        MainWindow.close()

    def setupUiOutput(self, MainWindow):
        super().__init__()

        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(811, 541)

        MainWindow.setMinimumSize(QtCore.QSize(811, 541))
        MainWindow.setMaximumSize(QtCore.QSize(811, 541))

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Output()
    ui.setupUiOutput(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
...