PyQt应用程序成功关闭,但进程未终止?

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,这是正常终止。如您所见,在我运行该应用程序时,该过程一直在堆积。

在此处输入图片说明

那么我该如何克服这个问题呢?

the*_*232 5

这是我能够解决的快速解决方案。

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)