Python Pyside:要TextEdit的多个QProcess输出

Python Pyside:要TextEdit的多个QProcess输出,python,pyside,signals-slots,qprocess,Python,Pyside,Signals Slots,Qprocess,我有一个pyside应用程序,它调用一个可执行程序。我希望在n个进程中异步运行此可执行文件,并在qtexdit中捕获每个进程的输出 目前我有: def run(self, args, worklist): self.viewer = OutputDialog(self) self.procs = [] for path in worklist: final_args = args + path p = QtCore.Q

我有一个pyside应用程序,它调用一个可执行程序。我希望在n个进程中异步运行此可执行文件,并在qtexdit中捕获每个进程的输出

目前我有:

def run(self, args, worklist):        

    self.viewer = OutputDialog(self)

    self.procs = []
    for path in worklist:
        final_args = args + path

        p = QtCore.QProcess(self)
        p.readyReadStandardOutput.connect(self.write_process_output)
        self.procs.append(p)
        p.start(self.exe, final_args)

def write_process_output(self):
    for p in self.procs:
        self.viewer.text_edit.append(p.readAllStandardOutput())
这太笨重了,因为每次进程发送“就绪”信号时,它都试图获取所有进程的输出


如何仅为发送信号的进程获取输出?

使用
lambda
连接信号,以便将相关进程传递到插槽:

        p.readyReadStandardOutput.connect(
            lambda process=p: self.write_process_output(process))


    def write_process_output(self, process):
        self.viewer.text_edit.append(process.readAllStandardOutput())