在 pyqt 中将 sys.exit() 与 app.exec_ 结合使用

问题描述 投票:0回答:2

谁能解释一下使用

sys.exit(app.exec_())
而不是更简单的
app.exec_()
在 PyQt 中启动 GUI 的相对优点?

我是 PyQt 的新手,两个例子都看过。

python pyqt
2个回答
17
投票

当 Unix 风格的应用程序退出时,它们向父进程返回一个数字,称为“状态代码”或“退出状态”。

0
用于表示成功;任何非零值都是失败的。 (有一些尝试标准化错误代码的含义,但它通常仍然留给每个程序。)

app.exec_()
运行主循环,并在退出时返回状态代码
sys.exit(n)
退出您的应用程序并返回
n
到父进程(通常是您的 shell)。所以不同之处在于,当您的程序退出时,较长的版本会传递状态代码。最好使用
sys.exit(app.exec_())
,因为系统的其他部分可以检测到程序何时因错误退出。


0
投票

如果要保证程序在用户关闭应用程序窗口时立即终止,使用sys.exit(app.exec_())。如果您想在事件循环完成后执行其他操作,请使用 app.exec_() 并在其后包含必要的代码。如果您正在编写不打算用作库或模块的独立应用程序,通常的做法是包含 sys.exit(app.exec_()) 以确保程序干净地终止。但是,如果您正在编写可能被其他脚本导入的库或模块,则应避免使用 sys.exit(),因为它会终止整个 Python 解释器,这可能会给其他正在运行的脚本带来问题。

© www.soinside.com 2019 - 2024. All rights reserved.