PyQt5 TypeError: конфликт метаклассов - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь сделать переход между 2 windows в PyQt 5. Один из классов представлен классом Login, а другой - классом Index. Класс Index показывает следующую ошибку:

class Index(QMainWindow,index_ui):#class for index.ui

TypeError: конфликт метаклассов: метакласс производного класса должен быть (нестрогим) подклассом метаклассов всех его баз

Код для того же выглядит следующим образом:

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.uic import loadUiType


login_ui,_=loadUiType('login.ui')
index_ui=loadUiType('index.ui')


class Login(QMainWindow,login_ui):
    def __init__(self):
        QWidget.__init__(self)
        self.setupUi(self)
        self.password.setEchoMode(QLineEdit.Password)
        self.submit.clicked.connect(self.handle_login)
        self.showpass.stateChanged.connect(self.showpassword)

    def showpassword(self,checked):
        if checked:
            self.password.setEchoMode(QLineEdit.Normal)
        else:
            self.password.setEchoMode(QLineEdit.Password)

    def handle_login(self):
        msg=QMessageBox()
        if self.username.text()=="" or self.password.text()=="":
                msg.setText("UserName or Password can't be empty")
                msg.setIcon(QMessageBox.Warning)
                x=msg.exec_()
                return
        msg.setText("Username:"+self.username.text()+" Password:"+self.password.text())
        x=msg.exec_()
        self.window2=Index()
        self.close()
        self.window2.show()

class Index(QMainWindow,index_ui):#class for index.ui
    def __init__(self):
        QWidget.__init__(self)
        self.setupUi(self)


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