sys.exit(app.exec_())PyQT Python - 为什么app.exec_()作为参数传递?

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

PyQt新手。有人可以向我解释为什么我们这样做:

 sys.exit(app.exec_())

代替:

app.exec_()
sys.exit()

我已经尝试过并且都工作了。问题2:我认为sys.exit(n)使用参数n作为退出状态。为什么sys.exit(app.exec_())会执行app.exec_()? sys.exit()中的参数是否在系统终止应用程序之前执行?我想也许我对这种情况下的“事件顺序”感到困惑。有人可以为我澄清一下吗?谢谢。

python pyqt
1个回答
5
投票

这似乎回答了你的问题,但有点令人困惑,所以我会试着改写一下。 Using sys.exit() with app.exec_ in pyqt

app.exec_()返回0表示成功,或者如果崩溃则返回错误消息

sys.exit(n)将值n返回给父进程(通常是你的shell)

因此,如果你单独调用它们并且app.exec_()崩溃,shell永远不会收到错误代码。

所以特别回答你的“问题2”,是的,首先调用内部函数。

这将产生相同的结果:

status = app.exec_()
sys.exit(status)
© www.soinside.com 2019 - 2024. All rights reserved.