获取完成的 QProcess 的 pid

get pid of finished QProcess

我正在尝试获取完成的 QProcess 的 PID,如下所示:

proc = QProcess.start()
proc.finished.connect(self.finished)

def finished(self):
    self.sender().pid()

QProcess.pid() 将 return 0 如果过程是 closed 但是, QProcess.finished() 只会在过程完成后调用,所以我可以只能得到 0...我该如何解决这个问题?我正在想办法在完成时不必使用 PID,但目前这就是我必须做的。

我试过 proc.aboutToClose.connect(self.finished) 但这从来没有 return 编辑任何东西,所以它似乎没有发出信号,但如果我能让它工作,那将是一个很好的解决方案。

Ekhumoro给出了答案,解决方案是通过PID命名进程,因此您以后仍然可以通过查询对象名称来获取它:

proc.setObjectName(str(proc.pid()))