Как правильно передать объект PyQt5 из одного класса в другой? (AttributeError: 'MainWindow' object has no attribute 'mainWindow1')

from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtWidgets import QApplication, QMainWindow, \
    QStackedWidget, QMessageBox, QFileDialog


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        MainWindow.setMinimumSize(QtCore.QSize(800, 600))
        MainWindow.setMaximumSize(QtCore.QSize(800, 600))
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.headind = QtWidgets.QLabel(self.centralwidget)
        self.headind.setGeometry(QtCore.QRect(300, 0, 200, 100))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(36)
        font.setBold(True)
        font.setWeight(75)
        self.headind.setFont(font)
        self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
        self.headind.setObjectName("headind")
        self.pic_brain = QtWidgets.QLabel(self.centralwidget)
        self.pic_brain.setGeometry(QtCore.QRect(300, 100, 200, 200))
        self.pic_brain.setText("")
        self.pic_brain.setPixmap(QtGui.QPixmap("D:/флэшка/Расортированные/2.2 курс/Практика/Test-IQ/pictures/brain_PNG61.png"))
        self.pic_brain.setObjectName("pic_brain")
        self.pic_p = QtWidgets.QFrame(self.centralwidget)
        self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
        self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_p.setObjectName("pic_p")
        self.pic_l = QtWidgets.QFrame(self.centralwidget)
        self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
        self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_l.setObjectName("pic_l")
        self.pB_test = QtWidgets.QPushButton(self.centralwidget)
        self.pB_test.setGeometry(QtCore.QRect(225, 300, 350, 100))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(18)
        font.setBold(True)
        font.setWeight(75)
        self.pB_test.setFont(font)
        self.pB_test.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.pB_test.setObjectName("pB_test")
        self.pB_doc = QtWidgets.QPushButton(self.centralwidget)
        self.pB_doc.setGeometry(QtCore.QRect(275, 450, 250, 80))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.pB_doc.setFont(font)
        self.pB_doc.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.pB_doc.setObjectName("pB_doc")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.headind.setText(_translate("MainWindow", "Test-IQ"))
        self.pB_test.setText(_translate("MainWindow", "Начать тестирование"))
        self.pB_doc.setText(_translate("MainWindow", "Документация"))


class Ui_Form1(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(800, 600)
        Form.setMinimumSize(QtCore.QSize(800, 600))
        Form.setMaximumSize(QtCore.QSize(800, 600))
        self.pic_l = QtWidgets.QFrame(Form)
        self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
        self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_l.setObjectName("pic_l")
        self.pic_p = QtWidgets.QFrame(Form)
        self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
        self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_p.setObjectName("pic_p")
        self.vop1 = QtWidgets.QLabel(Form)
        self.vop1.setGeometry(QtCore.QRect(20, 20, 781, 151))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.vop1.setFont(font)
        self.vop1.setObjectName("vop1")
        self.O_11 = QtWidgets.QPushButton(Form)
        self.O_11.setGeometry(QtCore.QRect(150, 250, 100, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.O_11.setFont(font)
        self.O_11.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.O_11.setObjectName("O_11")
        self.O_21 = QtWidgets.QPushButton(Form)
        self.O_21.setGeometry(QtCore.QRect(350, 250, 100, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.O_21.setFont(font)
        self.O_21.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.O_21.setObjectName("O_21")
        self.O_31 = QtWidgets.QPushButton(Form)
        self.O_31.setGeometry(QtCore.QRect(550, 250, 100, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.O_31.setFont(font)
        self.O_31.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.O_31.setObjectName("O_31")
        self.O_41 = QtWidgets.QPushButton(Form)
        self.O_41.setGeometry(QtCore.QRect(250, 350, 100, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.O_41.setFont(font)
        self.O_41.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.O_41.setObjectName("O_41")
        self.O_51 = QtWidgets.QPushButton(Form)
        self.O_51.setGeometry(QtCore.QRect(450, 350, 100, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.O_51.setFont(font)
        self.O_51.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.O_51.setObjectName("O_51")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.vop1.setText(_translate("Form", "1.Каким числом следует заменить знак вопроса?\n"
"     23 28 33 38 43 ?"))
        self.O_11.setText(_translate("Form", "46"))
        self.O_21.setText(_translate("Form", "47"))
        self.O_31.setText(_translate("Form", "49"))
        self.O_41.setText(_translate("Form", "50"))
        self.O_51.setText(_translate("Form", "48"))

class registr(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(800, 600)
        Form.setMinimumSize(QtCore.QSize(800, 600))
        Form.setMaximumSize(QtCore.QSize(800, 600))
        self.pic_l = QtWidgets.QFrame(Form)
        self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
        self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_l.setObjectName("pic_l")
        self.pB_test = QtWidgets.QPushButton(Form)
        self.pB_test.setGeometry(QtCore.QRect(225, 460, 350, 100))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(18)
        font.setBold(True)
        font.setWeight(75)
        self.pB_test.setFont(font)
        self.pB_test.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.pB_test.setObjectName("pB_test")
        self.headind = QtWidgets.QLabel(Form)
        self.headind.setGeometry(QtCore.QRect(200, 0, 400, 70))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(18)
        font.setBold(True)
        font.setWeight(75)
        self.headind.setFont(font)
        self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
        self.headind.setObjectName("headind")
        self.pic_p = QtWidgets.QFrame(Form)
        self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
        self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_p.setObjectName("pic_p")
        self.lineEdit = QtWidgets.QLineEdit(Form)
        self.lineEdit.setGeometry(QtCore.QRect(370, 130, 250, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        self.lineEdit.setFont(font)
        self.lineEdit.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
        self.lineEdit.setAlignment(QtCore.Qt.AlignCenter)
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtWidgets.QLineEdit(Form)
        self.lineEdit_2.setGeometry(QtCore.QRect(370, 290, 250, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        self.lineEdit_2.setFont(font)
        self.lineEdit_2.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
        self.lineEdit_2.setAlignment(QtCore.Qt.AlignCenter)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.lineEdit_3 = QtWidgets.QLineEdit(Form)
        self.lineEdit_3.setGeometry(QtCore.QRect(370, 210, 250, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        self.lineEdit_3.setFont(font)
        self.lineEdit_3.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
        self.lineEdit_3.setAlignment(QtCore.Qt.AlignCenter)
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.lineEdit_4 = QtWidgets.QLineEdit(Form)
        self.lineEdit_4.setGeometry(QtCore.QRect(370, 370, 250, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        self.lineEdit_4.setFont(font)
        self.lineEdit_4.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
        self.lineEdit_4.setAlignment(QtCore.Qt.AlignCenter)
        self.lineEdit_4.setObjectName("lineEdit_4")
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(160, 130, 200, 50))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(Form)
        self.label_2.setGeometry(QtCore.QRect(160, 290, 200, 50))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label_2.setFont(font)
        self.label_2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(Form)
        self.label_3.setGeometry(QtCore.QRect(160, 210, 200, 50))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label_3.setFont(font)
        self.label_3.setAlignment(QtCore.Qt.AlignCenter)
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(Form)
        self.label_4.setGeometry(QtCore.QRect(160, 370, 200, 50))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label_4.setFont(font)
        self.label_4.setAlignment(QtCore.Qt.AlignCenter)
        self.label_4.setObjectName("label_4")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.pB_test.setText(_translate("Form", "Закончить\n"
" тестирование"))
        self.headind.setText(_translate("Form", "Регистрация пользователя"))
        self.label.setText(_translate("Form", "Имя"))
        self.label_2.setText(_translate("Form", "Отчество"))
        self.label_3.setText(_translate("Form", "Фамилия"))
        self.label_4.setText(_translate("Form", "Возраст"))

class resultv(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(800, 600)
        self.pic_l = QtWidgets.QFrame(Form)
        self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
        self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_l.setObjectName("pic_l")
        self.headind = QtWidgets.QLabel(Form)
        self.headind.setGeometry(QtCore.QRect(300, 0, 200, 100))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(36)
        font.setBold(True)
        font.setWeight(75)
        self.headind.setFont(font)
        self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
        self.headind.setObjectName("headind")
        self.pic_p = QtWidgets.QFrame(Form)
        self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
        self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.fio = QtWidgets.QLabel(Form)
        self.fio.setGeometry(QtCore.QRect(200, 110, 400, 80))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.fio.setFont(font)
        self.fio.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"border-radius: 20")
        self.fio.setObjectName("fio")
        self.pic_p = QtWidgets.QFrame(Form)
        self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
        self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")        
        self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_p.setObjectName("pic_p")
        self.pB_main = QtWidgets.QPushButton(Form)
        self.pB_main.setGeometry(QtCore.QRect(230, 410, 340, 80))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.pB_main.setFont(font)
        self.pB_main.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.pB_main.setObjectName("pB_main")
        self.pic_brain = QtWidgets.QLabel(Form)
        self.pic_brain.setGeometry(QtCore.QRect(305, 190, 200, 190))
        self.pic_brain.setText("")
        self.pic_brain.setPixmap(QtGui.QPixmap("D:/флэшка/Расортированные/2.2 курс/Практика/Test-IQ/pictures/brain_PNG61.png"))
        self.pic_brain.setScaledContents(False)
        self.pic_brain.setObjectName("pic_brain")
        self.result = QtWidgets.QLabel(Form)
        self.result.setGeometry(QtCore.QRect(250, 180, 300, 200))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(100)
        font.setBold(True)
        font.setWeight(75)
        self.result.setFont(font)
        self.result.setStyleSheet("color: rgb(230, 0, 3);")
        self.result.setAlignment(QtCore.Qt.AlignCenter)
        self.result.setObjectName("result")
        self.pB_wrong_answers = QtWidgets.QPushButton(Form)
        self.pB_wrong_answers.setGeometry(QtCore.QRect(250, 510, 300, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.pB_wrong_answers.setFont(font)
        self.pB_wrong_answers.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.pB_wrong_answers.setObjectName("pB_wrong_answers")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.headind.setText(_translate("Form", "Test-IQ"))
        self.pB_main.setText(_translate("Form", "меню"))
        self.result.setText(_translate("Form", "121"))
        self.pB_wrong_answers.setText(_translate("Form", "неверные ответы"))

class resultat(QMainWindow, resultv):              
    def __init__(self, parent=None):                                                  
        super().__init__(parent)
        self.setupUi(self)
        self.parent = parent

       
        self.result.setText(self.parent.mainWindow1.o1)



class registra(QMainWindow, registr):              
    def __init__(self, parent=None):                                                  
        super().__init__(parent)
        self.setupUi(self)
        self.parent = parent

        self.pB_test.clicked.connect(self.ex)


        self.lineEdit_4.setInputMask("100")
        self.resultat = resultat(self.parent)


    def rr(self):

        name = self.lineEdit.text()
        family_name = self.lineEdit_2.text()
        otchestvo = self.lineEdit_3.text()
        age = self.lineEdit_4.text()
        self.tracker = True

        if name == "" or family_name == "" or otchestvo == "" or age == "":
            QMessageBox.critical(self, 'Ошибка!', "Вы вели не все поля")
            self.tracker = False


    def ex(self):
        print(self.parent.o1)
        self.rr()
        if self.tracker == True:
            self.resultat.show()
            self.hide()
        else:
            return

class MainWindow1(QMainWindow, Ui_Form1):              
    def __init__(self, parent=None):                                                  
        super().__init__(parent)
        self.setupUi(self)
        self.parent = parent
                                                         

        self.O_11.clicked.connect(self.O11)
        self.O_21.clicked.connect(self.O21)
        self.O_31.clicked.connect(self.O31)
        self.O_41.clicked.connect(self.O41)
        self.O_51.clicked.connect(self.O51)

        self.o1 = ""

        self.Registra = registra(self.parent)
        self.resultat = resultat(self.parent)


      

    def O11(self):
        self.parent.o1 = "0"
        self.Registra.show()
        self.hide()


    def O21(self):
        self.parent.o1 = "0"
        self.Registra.show()
        self.hide()
                                    
    def O31(self):
        self.parent.o1 = "0"
        self.Registra.show()
        self.hide()

    def O41(self):
        self.parent.o1 = "0"
        self.Registra.show()
        self.hide()

    def O51(self):
        self.parent.o1 = "1"
        print(self.o1)

        self.Registra.show()
        self.hide()



class MainWindow(QMainWindow, Ui_MainWindow):                          
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self) 
        
        
        

        self.pB_test.clicked.connect(self.onMainWindow1)
        self.pB_doc.clicked.connect(self.Dock)

        self.mainWindow1 = MainWindow1(self)    
        self.Dock = Dock(self)                                   


    def onMainWindow1(self):
        self.mainWindow1.show()
        windows.hide()

    def Dock(self):
        self.Dock.show()
        windows.hide()






if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    startmenu_window = MainWindow()
    windows = QStackedWidget()

    windows.addWidget(startmenu_window)  
    windows.show()
    sys.exit(app.exec_())

Ответы (1 шт):

Автор решения: S. Nick

Не очень понятная структура приложения. Вы бы подумали как-то перестроить ее, создав экземпляры всех объектов классов в главном классе MainWindow, а затем уже как-то и логику подвязали.

Тем не менее я отметил для вас строки, в которые внес изменения, чтобы ваше приложение заработало.

from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtWidgets import QApplication, QMainWindow, \
    QStackedWidget, QMessageBox, QFileDialog


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        MainWindow.setMinimumSize(QtCore.QSize(800, 600))
        MainWindow.setMaximumSize(QtCore.QSize(800, 600))
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.headind = QtWidgets.QLabel(self.centralwidget)
        self.headind.setGeometry(QtCore.QRect(300, 0, 200, 100))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(36)
        font.setBold(True)
        font.setWeight(75)
        self.headind.setFont(font)
        self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
        self.headind.setObjectName("headind")
        self.pic_brain = QtWidgets.QLabel(self.centralwidget)
        self.pic_brain.setGeometry(QtCore.QRect(300, 100, 200, 200))
        self.pic_brain.setText("")
        self.pic_brain.setPixmap(QtGui.QPixmap("D:/флэшка/Расортированные/2.2 курс/Практика/Test-IQ/pictures/brain_PNG61.png"))
        self.pic_brain.setObjectName("pic_brain")
        self.pic_p = QtWidgets.QFrame(self.centralwidget)
        self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
        self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_p.setObjectName("pic_p")
        self.pic_l = QtWidgets.QFrame(self.centralwidget)
        self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
        self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_l.setObjectName("pic_l")
        self.pB_test = QtWidgets.QPushButton(self.centralwidget)
        self.pB_test.setGeometry(QtCore.QRect(225, 300, 350, 100))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(18)
        font.setBold(True)
        font.setWeight(75)
        self.pB_test.setFont(font)
        self.pB_test.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.pB_test.setObjectName("pB_test")
        self.pB_doc = QtWidgets.QPushButton(self.centralwidget)
        self.pB_doc.setGeometry(QtCore.QRect(275, 450, 250, 80))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.pB_doc.setFont(font)
        self.pB_doc.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.pB_doc.setObjectName("pB_doc")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.headind.setText(_translate("MainWindow", "Test-IQ"))
        self.pB_test.setText(_translate("MainWindow", "Начать тестирование"))
        self.pB_doc.setText(_translate("MainWindow", "Документация"))


class Ui_Form1(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(800, 600)
        Form.setMinimumSize(QtCore.QSize(800, 600))
        Form.setMaximumSize(QtCore.QSize(800, 600))
        self.pic_l = QtWidgets.QFrame(Form)
        self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
        self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_l.setObjectName("pic_l")
        self.pic_p = QtWidgets.QFrame(Form)
        self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
        self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_p.setObjectName("pic_p")
        self.vop1 = QtWidgets.QLabel(Form)
        self.vop1.setGeometry(QtCore.QRect(20, 20, 781, 151))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.vop1.setFont(font)
        self.vop1.setObjectName("vop1")
        self.O_11 = QtWidgets.QPushButton(Form)
        self.O_11.setGeometry(QtCore.QRect(150, 250, 100, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.O_11.setFont(font)
        self.O_11.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.O_11.setObjectName("O_11")
        self.O_21 = QtWidgets.QPushButton(Form)
        self.O_21.setGeometry(QtCore.QRect(350, 250, 100, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.O_21.setFont(font)
        self.O_21.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.O_21.setObjectName("O_21")
        self.O_31 = QtWidgets.QPushButton(Form)
        self.O_31.setGeometry(QtCore.QRect(550, 250, 100, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.O_31.setFont(font)
        self.O_31.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.O_31.setObjectName("O_31")
        self.O_41 = QtWidgets.QPushButton(Form)
        self.O_41.setGeometry(QtCore.QRect(250, 350, 100, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.O_41.setFont(font)
        self.O_41.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.O_41.setObjectName("O_41")
        self.O_51 = QtWidgets.QPushButton(Form)
        self.O_51.setGeometry(QtCore.QRect(450, 350, 100, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.O_51.setFont(font)
        self.O_51.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.O_51.setObjectName("O_51")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.vop1.setText(_translate("Form", "1.Каким числом следует заменить знак вопроса?\n"
"     23 28 33 38 43 ?"))
        self.O_11.setText(_translate("Form", "46"))
        self.O_21.setText(_translate("Form", "47"))
        self.O_31.setText(_translate("Form", "49"))
        self.O_41.setText(_translate("Form", "50"))
        self.O_51.setText(_translate("Form", "48"))

class registr(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(800, 600)
        Form.setMinimumSize(QtCore.QSize(800, 600))
        Form.setMaximumSize(QtCore.QSize(800, 600))
        self.pic_l = QtWidgets.QFrame(Form)
        self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
        self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_l.setObjectName("pic_l")
        self.pB_test = QtWidgets.QPushButton(Form)
        self.pB_test.setGeometry(QtCore.QRect(225, 460, 350, 100))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(18)
        font.setBold(True)
        font.setWeight(75)
        self.pB_test.setFont(font)
        self.pB_test.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.pB_test.setObjectName("pB_test")
        self.headind = QtWidgets.QLabel(Form)
        self.headind.setGeometry(QtCore.QRect(200, 0, 400, 70))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(18)
        font.setBold(True)
        font.setWeight(75)
        self.headind.setFont(font)
        self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
        self.headind.setObjectName("headind")
        self.pic_p = QtWidgets.QFrame(Form)
        self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
        self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_p.setObjectName("pic_p")
        self.lineEdit = QtWidgets.QLineEdit(Form)
        self.lineEdit.setGeometry(QtCore.QRect(370, 130, 250, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        self.lineEdit.setFont(font)
        self.lineEdit.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
        self.lineEdit.setAlignment(QtCore.Qt.AlignCenter)
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtWidgets.QLineEdit(Form)
        self.lineEdit_2.setGeometry(QtCore.QRect(370, 290, 250, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        self.lineEdit_2.setFont(font)
        self.lineEdit_2.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
        self.lineEdit_2.setAlignment(QtCore.Qt.AlignCenter)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.lineEdit_3 = QtWidgets.QLineEdit(Form)
        self.lineEdit_3.setGeometry(QtCore.QRect(370, 210, 250, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        self.lineEdit_3.setFont(font)
        self.lineEdit_3.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
        self.lineEdit_3.setAlignment(QtCore.Qt.AlignCenter)
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.lineEdit_4 = QtWidgets.QLineEdit(Form)
        self.lineEdit_4.setGeometry(QtCore.QRect(370, 370, 250, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        self.lineEdit_4.setFont(font)
        self.lineEdit_4.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
        self.lineEdit_4.setAlignment(QtCore.Qt.AlignCenter)
        self.lineEdit_4.setObjectName("lineEdit_4")
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(160, 130, 200, 50))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(Form)
        self.label_2.setGeometry(QtCore.QRect(160, 290, 200, 50))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label_2.setFont(font)
        self.label_2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(Form)
        self.label_3.setGeometry(QtCore.QRect(160, 210, 200, 50))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label_3.setFont(font)
        self.label_3.setAlignment(QtCore.Qt.AlignCenter)
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(Form)
        self.label_4.setGeometry(QtCore.QRect(160, 370, 200, 50))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label_4.setFont(font)
        self.label_4.setAlignment(QtCore.Qt.AlignCenter)
        self.label_4.setObjectName("label_4")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.pB_test.setText(_translate("Form", "Закончить\n"
" тестирование"))
        self.headind.setText(_translate("Form", "Регистрация пользователя"))
        self.label.setText(_translate("Form", "Имя"))
        self.label_2.setText(_translate("Form", "Отчество"))
        self.label_3.setText(_translate("Form", "Фамилия"))
        self.label_4.setText(_translate("Form", "Возраст"))

class resultv(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(800, 600)
        self.pic_l = QtWidgets.QFrame(Form)
        self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
        self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_l.setObjectName("pic_l")
        self.headind = QtWidgets.QLabel(Form)
        self.headind.setGeometry(QtCore.QRect(300, 0, 200, 100))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(36)
        font.setBold(True)
        font.setWeight(75)
        self.headind.setFont(font)
        self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
        self.headind.setObjectName("headind")
        self.pic_p = QtWidgets.QFrame(Form)
        self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
        self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
        self.fio = QtWidgets.QLabel(Form)
        self.fio.setGeometry(QtCore.QRect(200, 110, 400, 80))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.fio.setFont(font)
        self.fio.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"border-radius: 20")
        self.fio.setObjectName("fio")
        self.pic_p = QtWidgets.QFrame(Form)
        self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
        self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")        
        self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
        self.pic_p.setObjectName("pic_p")
        self.pB_main = QtWidgets.QPushButton(Form)
        self.pB_main.setGeometry(QtCore.QRect(230, 410, 340, 80))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.pB_main.setFont(font)
        self.pB_main.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.pB_main.setObjectName("pB_main")
        self.pic_brain = QtWidgets.QLabel(Form)
        self.pic_brain.setGeometry(QtCore.QRect(305, 190, 200, 190))
        self.pic_brain.setText("")
        self.pic_brain.setPixmap(QtGui.QPixmap("D:/флэшка/Расортированные/2.2 курс/Практика/Test-IQ/pictures/brain_PNG61.png"))
        self.pic_brain.setScaledContents(False)
        self.pic_brain.setObjectName("pic_brain")
        self.result = QtWidgets.QLabel(Form)
        self.result.setGeometry(QtCore.QRect(250, 180, 300, 200))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(100)
        font.setBold(True)
        font.setWeight(75)
        self.result.setFont(font)
        self.result.setStyleSheet("color: rgb(230, 0, 3);")
        self.result.setAlignment(QtCore.Qt.AlignCenter)
        self.result.setObjectName("result")
        self.pB_wrong_answers = QtWidgets.QPushButton(Form)
        self.pB_wrong_answers.setGeometry(QtCore.QRect(250, 510, 300, 60))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.pB_wrong_answers.setFont(font)
        self.pB_wrong_answers.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
        self.pB_wrong_answers.setObjectName("pB_wrong_answers")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.headind.setText(_translate("Form", "Test-IQ"))
        self.pB_main.setText(_translate("Form", "меню"))
        self.result.setText(_translate("Form", "121"))
        self.pB_wrong_answers.setText(_translate("Form", "неверные ответы"))

#     v
class Resultat(QMainWindow, resultv):              
    def __init__(self, parent=None):                                                  
        super().__init__(parent)
        self.setupUi(self)
        self.parent = parent

        self.result.setText(self.parent.mainWindow1.o1)

#     v
class Registra(QMainWindow, registr):              
    def __init__(self, parent=None):                                                  
        super().__init__(parent)
        self.setupUi(self)
        self.parent = parent

        self.pB_test.clicked.connect(self.ex)

        self.lineEdit_4.setInputMask("100")

# ?        self.resultat = resultat(self.parent)                        # --- 

    def rr(self):
        name = self.lineEdit.text()
        family_name = self.lineEdit_2.text()
        otchestvo = self.lineEdit_3.text()
        age = self.lineEdit_4.text()
        self.tracker = True

        if name == "" or family_name == "" or otchestvo == "" or age == "":
            QMessageBox.critical(self, 'Ошибка!', "Вы вели не все поля")
            self.tracker = False

    def ex(self):
        print(self.parent.o1)
        self.rr()
        if self.tracker == True:
#            self.resultat.show()                                          # ---
            self.parent.mainWindow1.resultat.show()                        # +++
            self.hide()
        else:
            return


class MainWindow1(QMainWindow, Ui_Form1):              
    def __init__(self, parent=None):                                                  
        super().__init__(parent)
        self.setupUi(self)
        self.parent = parent

        self.O_11.clicked.connect(self.O11)                    # 46
        self.O_21.clicked.connect(self.O21)
        self.O_31.clicked.connect(self.O31)
        self.O_41.clicked.connect(self.O41)
        self.O_51.clicked.connect(self.O51)                    # 48

        self.o1 = ""

#        self.Registra = registra(self.parent)                       # ---
#            v          v
        self.registra = Registra(self.parent)                        # +++

# ?         self.resultat = resultat(self.parent)                    # ---
        QtCore.QTimer.singleShot(10, self._resultat)                 # +++  !!!
        
    def _resultat(self):                                             # +++
#                       v     
        self.resultat = Resultat(self.parent)                        # +++


    def O11(self):
        self.parent.o1 = "0"
        self.registra.show()
        self.hide()

    def O21(self):
        self.parent.o1 = "0"
        self.registra.show()
        self.hide()
                                    
    def O31(self):
        self.parent.o1 = "0"
        self.registra.show()
        self.hide()

    def O41(self):
        self.parent.o1 = "0"
        self.registra.show()
        self.hide()

    def O51(self):
        self.parent.o1 = "1"
        print(self.o1)
        self.registra.show()
        self.hide()


class MainWindow(QMainWindow, Ui_MainWindow):                          
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self) 

        self.pB_test.clicked.connect(self.onMainWindow1)
# ?        self.pB_doc.clicked.connect(self.funcDock)
        
        self.mainWindow1 = MainWindow1(self)
        
# ?        self.dock = Dock(self)                                   

    def onMainWindow1(self):
        self.mainWindow1.show()
        windows.hide()

    def funcDock(self):
        self.dock.show()
        windows.hide()


if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    startmenu_window = MainWindow()
    windows = QStackedWidget()

    windows.addWidget(startmenu_window)  
    windows.show()
    sys.exit(app.exec_())
    

введите сюда описание изображения

→ Ссылка