Aug-03-2021, 01:58 AM
Hi, guys! I have a MainWindow with a subwindow inside an mdiArea. The subwindow opens, but if I close it and try to reopen it, my app crashes. What am I doing wrong? Here's my code:
from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.setWindowModality(QtCore.Qt.WindowModal) MainWindow.resize(781, 478) self.mdiArea = QtWidgets.QMdiArea() self.mdiArea.setGeometry(0, 0, 600, 400) self.mdiArea.setAutoFillBackground(True) self.mdiArea.setObjectName("mdiArea") self.subWindowUsers = QtWidgets.QWidget() self.subWindowUsers.setMinimumSize(QtCore.QSize(466, 267)) self.subWindowUsers.setObjectName("subWindowUsers") self.pushButton_save_2 = QtWidgets.QPushButton(self.subWindowUsers) self.pushButton_save_2.setGeometry(QtCore.QRect(330, 220, 75, 23)) self.pushButton_save_2.setObjectName("pushButton_save_2") self.pushButton_previous = QtWidgets.QPushButton(self.subWindowUsers) self.pushButton_previous.setGeometry(QtCore.QRect(150, 190, 75, 23)) self.pushButton_previous.setObjectName("pushButton_previous") self.lineEdit_date = QtWidgets.QLineEdit(self.subWindowUsers) self.lineEdit_date.setGeometry(QtCore.QRect(110, 50, 91, 20)) self.lineEdit_date.setObjectName("lineEdit_date") self.pushButton_edit = QtWidgets.QPushButton(self.subWindowUsers) self.pushButton_edit.setGeometry(QtCore.QRect(150, 220, 75, 23)) self.pushButton_edit.setObjectName("pushButton_edit") self.pushButton_update = QtWidgets.QPushButton(self.subWindowUsers) self.pushButton_update.setGeometry(QtCore.QRect(240, 220, 75, 23)) self.pushButton_update.setObjectName("pushButton_update") self.pushButton_next = QtWidgets.QPushButton(self.subWindowUsers) self.pushButton_next.setGeometry(QtCore.QRect(240, 190, 75, 23)) self.pushButton_next.setObjectName("pushButton_next") self.pushButton_first = QtWidgets.QPushButton(self.subWindowUsers) self.pushButton_first.setGeometry(QtCore.QRect(60, 190, 75, 23)) self.pushButton_first.setObjectName("pushButton_first") self.pushButton_last = QtWidgets.QPushButton(self.subWindowUsers) self.pushButton_last.setGeometry(QtCore.QRect(330, 190, 75, 23)) self.pushButton_last.setObjectName("pushButton_last") self.pushButton_add = QtWidgets.QPushButton(self.subWindowUsers) self.pushButton_add.setGeometry(QtCore.QRect(60, 220, 75, 23)) self.pushButton_add.setObjectName("pushButton_add") self.pushButton_cancel = QtWidgets.QPushButton(self.subWindowUsers) self.pushButton_cancel.setGeometry(QtCore.QRect(240, 220, 75, 23)) self.pushButton_cancel.setObjectName("pushButton_cancel") self.lineEdit_login = QtWidgets.QLineEdit(self.subWindowUsers) self.lineEdit_login.setGeometry(QtCore.QRect(110, 110, 171, 20)) self.lineEdit_login.setObjectName("lineEdit_login") self.lineEdit_name = QtWidgets.QLineEdit(self.subWindowUsers) self.lineEdit_name.setGeometry(QtCore.QRect(110, 80, 271, 20)) self.lineEdit_name.setObjectName("lineEdit_name") self.pushButton_save = QtWidgets.QPushButton(self.subWindowUsers) self.pushButton_save.setGeometry(QtCore.QRect(330, 220, 75, 23)) self.pushButton_save.setObjectName("pushButton_save") self.lineEdit_number = QtWidgets.QLineEdit(self.subWindowUsers) self.lineEdit_number.setGeometry(QtCore.QRect(110, 20, 61, 20)) self.lineEdit_number.setObjectName("lineEdit_number") self.lineEdit_pwd = QtWidgets.QLineEdit(self.subWindowUsers) self.lineEdit_pwd.setGeometry(QtCore.QRect(110, 140, 113, 20)) self.lineEdit_pwd.setObjectName("lineEdit_pwd") MainWindow.setCentralWidget(self.mdiArea) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 781, 21)) self.menubar.setObjectName("menubar") self.menuUsers = QtWidgets.QMenu(self.menubar) self.menuUsers.setObjectName("menuUsers") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.actionFile_users = QtWidgets.QAction(MainWindow) self.actionFile_users.setObjectName("actionFile_users") self.menuUsers.addAction(self.actionFile_users) self.menubar.addAction(self.menuUsers.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) self.actionFile_users.triggered.connect(lambda: self.OpenUserForm("Users")) self.pushButton_cancel.hide() self.pushButton_save.hide() def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "My App")) self.subWindowUsers.setWindowTitle(_translate("MainWindow", "Subwindow")) self.pushButton_save_2.setText(_translate("MainWindow", "Delete")) self.pushButton_previous.setText(_translate("MainWindow", "< Previous")) self.pushButton_edit.setText(_translate("MainWindow", "Edit")) self.pushButton_update.setText(_translate("MainWindow", "Update")) self.pushButton_next.setText(_translate("MainWindow", "Next >")) self.pushButton_first.setText(_translate("MainWindow", "<< First")) self.pushButton_last.setText(_translate("MainWindow", "Last >>")) self.pushButton_add.setText(_translate("MainWindow", "New user")) self.pushButton_cancel.setText(_translate("MainWindow", "Cancel")) self.pushButton_save.setText(_translate("MainWindow", "Save")) self.menuUsers.setTitle(_translate("MainWindow", "Files")) self.actionFile_users.setText(_translate("MainWindow", "Users")) def OpenUserForm(self, text): self.mdiArea.addSubWindow(ui.subWindowUsers) ui.subWindowUsers.setWindowTitle(text) ui.subWindowUsers.show() if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())Thanks a lot for your time and help. I appreciate it! Best regards,