【发布时间】:2014-07-06 15:17:27
【问题描述】:
我最近开始使用 PySide 进行 GUI 编程,但遇到了关于退出命令的奇怪问题。 Sys.exit([x]) 似乎被广泛用于停止 PySide 程序;但是,每当我在使用类的 PySide 程序中使用它时,它都不会向 PyCharm 返回退出代码或停止任务管理器中的 Python 进程。
奇怪的是,使用 PySide 时似乎很难做到这两件事;我可以跳出主循环,调用sys.exit(0)、raise SystemExit(0),它不会停止在后台运行。 only 在使用 PySide 时发生,only 在使用类构造小部件时发生。
我尝试了各种组合,但我可以可靠地终止进程的唯一方法是使用os._exit(0),这有点残酷。奇怪的是,我似乎是遇到这个问题的少数人之一,我很好奇是什么原因造成的。
我通过使用来自Zetcode 的sys.exit(app.exec_()) 运行Pyside 教程脚本验证了这不是我的代码本身的错误。同样,调用 sys.exit() 并没有返回退出值或终止 Python 进程。因为这是一个教程,我假设对于大多数人来说,这段代码工作得很好。这可能是版本问题(我使用 Python 3.4 和 PySide 1.2.2)吗?
编辑;我还发现将 sys.exit(0) 命令放在哪里并不重要,只要它在我的类定义之后。 Imports > sys.exit() > class 立即退出(正如人们所期望的那样),但 Imports > class > sys.exit() - 即使我还没有真正调用任何类 - 也没有正确关闭程序.
【问题讨论】:
-
可能相关的帖子:stackoverflow.com/questions/10709262/… 我在尝试在 spyder 中运行 pyside 时遇到了类似的问题。希望那里的一些建议是相关的。
标签: python-3.x pyside pycharm exit-code