我正在开发一个发送邮件的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()
,我会得到相同的结果。
答案 0 :(得分:0)
你试过sys.exit(0)
吗?
(您需要import sys
,但您可能已经导入了它,因为它是pyqt sys.exit(app.exec_())
所必需的)
如果它不起作用,我相信你的问题来自其他地方。