def main(): app = QApplication(sys.argv) while True: loginDialog = LoginDialog() if loginDialog.exec() == LoginDialog.Rejected: return db, userName, password = loginDialog.result() try: database = Database(db, userName, password) break except WrongUserPass as e: QMessageBox.warning(None, "Error", "Wrong username or password") continue except Exception as e: QMessageBox.warning(None, "Error", "Failed to open database: \n" + str(e)) return config = Configuration() config.addRecentDB(db) wnd = MainWindow(database) wnd.show() res = app.exec_() try: config.save() except Exception as e: print("Error: %s" % str(e)) return res