在 initUI 之前终止 PyQt App

Terminating PyQt App before initUI

我正在开发一个发送邮件的 PyQt 应用程序。它从文件中读取身份验证信息。我正在尝试在调用 initUI() 之前检查身份验证是否正常,如果不正常则显示错误消息并退出整个应用程序。

这是我的代码片段:

class Mailer(QWidget):
    def __init__(self):
        super().__init__()

        config = configparser.ConfigParser()
        config.read('config.ini')

        self.server = config["SMTP SERVER"]
        self.user = config["USER"]
        self.smtpServer = smtplib.SMTP_SSL(self.server["Host"],self.server["Port"])

        try:
            self.smtpServer.login(self.user["Username"],self.user["Password"])
            self.smtpServer.quit()
        except smtplib.SMTPAuthenticationError:
            QMessageBox.critical(self, "Error de autenticación", """El usuario y/o la contraseña en el archivo config.ini son incorrectos.""", QMessageBox.Ok)
            QCoreApplication.instance().quit()

        self.initUI()

问题是它没有退出应用程序。如果我将 QCoreApplication.instance().quit() 更改为 self.close(),我会得到相同的结果。

你试过了吗sys.exit(0)? (为此你需要 import sys,但你可能已经导入了它,因为它是 pyqt sys.exit(app.exec_()) 所必需的)

如果还是不行,我相信你的问题来自其他地方。