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_())