the*_*232 2 python pyqt pyqt4 sys
我只是注意到,当我运行pyqt应用程序并关闭它时,该应用程序将关闭,但是该过程仍然有效。显然,即使关闭了应用程序,正在运行的进程也不会关闭。
Traceback (most recent call last):
File "F:\Projects\XYZ\XYZ\XYZ.py", line 414, in <module>
sys.exit(app.exec_())
SystemExit: 0
Run Code Online (Sandbox Code Playgroud)
当我在线搜索时,它说如果返回值为0,这是正常终止。如您所见,在我运行该应用程序时,该过程一直在堆积。

那么我该如何克服这个问题呢?
解
这是我能够解决的快速解决方案。
import psutil, os
def kill_proc_tree(pid, including_parent=True):
parent = psutil.Process(pid)
for child in parent.children(recursive=True):
child.kill()
if including_parent:
parent.kill()
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow() # <-- Instantiate QMainWindow object.
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
app.exec_()
me = os.getpid()
kill_proc_tree(me)
Run Code Online (Sandbox Code Playgroud)