PyQt5 QMessageBox не работает

Я пытаюсь создать свой самый первый графический интерфейс через Pyqt 5.10 и python 3.6. Я создал интерфейс в Qt designer и затем преобразовал.ui в.py. Я проектирую базовый интерфейс входа в систему. Когда я правильно ввожу имя пользователя и пароль, появится новое окно. Это работает хорошо.

Я хочу показать QMessageBox при неправильном вводе информации. Я застрял здесь. Я пытаюсь запустить этот код с IF ЗАЯВЛЕНИЕ, как вы можете увидеть код, и я получил:

Ошибка типа: about(QWidget, str, str): аргумент 1 имеет непредвиденный тип 'Ui_MainWindow'

Кроме того, если я не использую Qt Creator для разработки, то это означает, что я пишу код вручную вместо преобразования из.ui в.py, я могу показать QMessageBox. Я что-то делаю не так и не поняла.

 class Ui_MainWindow(object):
    def __init__(self):
        super().__init__()
        self.setupUi(MainWindow)

    def openWindow(self):
        if  self.line_username.text()=="baha" and self.line_password.text()=="baha":
            self.window=QtWidgets.QDialog()
            self.ui=Ui_Dialog()
            self.ui.setupUi(self.window)
            self.window.show()
            MainWindow.hide()
        else :
            QtWidgets.QMessageBox.about(self,"About Message","this is about message")

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(278, 270)
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.centralWidget)
        self.horizontalLayout_3.setContentsMargins(11, 11, 11, 11)
        self.horizontalLayout_3.setSpacing(6)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.groupBox = QtWidgets.QGroupBox(self.centralWidget)
        font = QtGui.QFont()
        font.setPointSize(15)
        self.groupBox.setFont(font)
        self.groupBox.setObjectName("groupBox")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.groupBox)
        self.verticalLayout_2.setContentsMargins(11, 11, 11, 11)
        self.verticalLayout_2.setSpacing(6)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setSpacing(6)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setSpacing(6)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.labelUsername = QtWidgets.QLabel(self.groupBox)
        font = QtGui.QFont()
        font.setPointSize(15)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.labelUsername.setFont(font)
        self.labelUsername.setObjectName("labelUsername")
        self.horizontalLayout.addWidget(self.labelUsername)
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.line_username = QtWidgets.QLineEdit(self.groupBox)
        self.line_username.setObjectName("line_username")
        self.horizontalLayout.addWidget(self.line_username)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setSpacing(6)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.labelPassword = QtWidgets.QLabel(self.groupBox)
        font = QtGui.QFont()
        font.setPointSize(15)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.labelPassword.setFont(font)
        self.labelPassword.setObjectName("labelPassword")
        self.horizontalLayout_2.addWidget(self.labelPassword)
        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem1)
        self.line_password = QtWidgets.QLineEdit(self.groupBox)
        self.line_password.setObjectName("line_password")
        self.horizontalLayout_2.addWidget(self.line_password)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.verticalLayout_2.addLayout(self.verticalLayout)
        self.pushButtonLogin = QtWidgets.QPushButton(self.groupBox)
        font = QtGui.QFont()
        font.setPointSize(20)
        font.setBold(True)
        font.setItalic(False)
        font.setWeight(75)
        self.pushButtonLogin.setFont(font)
        self.pushButtonLogin.setObjectName("pushButtonLogin")

        self.pushButtonLogin.clicked.connect(self.openWindow) #PUSH BUTTON CONNECT

        self.verticalLayout_2.addWidget(self.pushButtonLogin)
        self.horizontalLayout_3.addWidget(self.groupBox)
        MainWindow.setCentralWidget(self.centralWidget)
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 278, 22))
        self.menuBar.setObjectName("menuBar")
        MainWindow.setMenuBar(self.menuBar)
        self.toolBar = QtWidgets.QToolBar(MainWindow)
        self.toolBar.setObjectName("toolBar")
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        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.groupBox.setTitle(_translate("MainWindow", "SignIn"))
        self.labelUsername.setText(_translate("MainWindow", "Username"))
        self.labelPassword.setText(_translate("MainWindow", "Password"))
        self.pushButtonLogin.setText(_translate("MainWindow", "Login"))
        self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))


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

0 ответов

Другие вопросы по тегам