Как реализовать переход из окна авторизации в Главное окно программы Qt Designer?

Сделал реализацию авторизации, но когда нажимаю на кнопку "Войти", то не отрывается главное окно формы.

До этого пробовал сделать, что есть Main окно и оно открывает Main окно, но тогда кнопки перестают работать.

Сейчас пробую первую вызвать Виджет и открыть Main, но ничего...

Запускаю окно виджета (авторизации)

Main.py

if __name__ == "__main__":
    import sys
 
    app = QtWidgets.QApplication(sys.argv)
    Form = QtWidgets.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
    sys.exit(app.exec_())

class Form()

   class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(400, 300)
        self.lineEdit = QtWidgets.QLineEdit(Form)
        self.lineEdit.setGeometry(QtCore.QRect(130, 50, 113, 22))
        self.lineEdit.setObjectName("lineEdit")
        self.pushButton_2 = QtWidgets.QPushButton(Form)
        self.pushButton_2.setGeometry(QtCore.QRect(140, 190, 93, 28))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(140, 150, 93, 28))
        self.pushButton.setObjectName("pushButton")
        self.lineEdit_2 = QtWidgets.QLineEdit(Form)
        self.lineEdit_2.setGeometry(QtCore.QRect(130, 100, 113, 22))
        self.lineEdit_2.setObjectName("lineEdit_2")

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

        self.aut()

    def aut(self):
        self.pushButton.clicked.connect(self.Autor)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.lineEdit.setPlaceholderText(_translate("Form", "Логин"))
        self.pushButton_2.setText(_translate("Form", "Выход"))
        self.pushButton.setText(_translate("Form", "Войти"))
        self.lineEdit_2.setPlaceholderText(_translate("Form", "Пароль"))



    def Autor(self):
        app = QtWidgets.QApplication(sys.argv)
        MainWindow = QtWidgets.QMainWindow()
        ui = Ui_MainWindow()
        ui.setupUi(MainWindow)
        MainWindow.show()
        #sys.exit(app.exec_())

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

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

НИКОГДА НЕ ИЗМЕНЯЙТЕ код, сгенерированный Qt Designer, НИКОГДА.

Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения.

import sys
from PyQt5 import QtWidgets, QtGui, QtCore 


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        
        self.label = QtWidgets.QLabel(self.centralwidget, 
            alignment = QtCore.Qt.AlignCenter)
        self.label.setStyleSheet(
            "background-color: rgb(192, 192, 0);"
            "font-size: 50px;"
            )
        
        self.layout = QtWidgets.QVBoxLayout(self.centralwidget)        
        self.layout.addWidget(self.label)
        MainWindow.setCentralWidget(self.centralwidget)

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

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "MainWindow"))    

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(400, 300)
        self.lineEdit = QtWidgets.QLineEdit(Form)
        self.lineEdit.setGeometry(QtCore.QRect(130, 50, 113, 22))
        self.lineEdit.setObjectName("lineEdit")
        self.pushButton_2 = QtWidgets.QPushButton(Form)
        self.pushButton_2.setGeometry(QtCore.QRect(140, 190, 93, 28))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(140, 150, 93, 28))
        self.pushButton.setObjectName("pushButton")
        self.lineEdit_2 = QtWidgets.QLineEdit(Form)
        self.lineEdit_2.setGeometry(QtCore.QRect(130, 100, 113, 22))
        self.lineEdit_2.setObjectName("lineEdit_2")

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

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.lineEdit.setPlaceholderText(_translate("Form", "Логин"))
        self.pushButton_2.setText(_translate("Form", "Выход"))
        self.pushButton.setText(_translate("Form", "Войти"))
        self.lineEdit_2.setPlaceholderText(_translate("Form", "Пароль"))


class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): 
    def __init__(self):
        super().__init__()
        
        self.setupUi(self)
        

class LoginWindow(QtWidgets.QWidget, Ui_Form): 
    def __init__(self):
        super().__init__()
        
        self.setupUi(self)

        self.pushButton.clicked.connect(self.autor)
        
    def autor(self):
        self.mainWindow = MainWindow()
        self.mainWindow.show()
        self.hide()
        

if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)
    w = LoginWindow()
    w.show()
    sys.exit(app.exec_())

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

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

→ Ссылка