如何使用 QProcess 同时运行多个 python 脚本

Posted

技术标签:

【中文标题】如何使用 QProcess 同时运行多个 python 脚本【英文标题】:how do I run multiple python scripts simultaniously using QProcess 【发布时间】:2021-02-20 17:56:20 【问题描述】:

我正在尝试从 GUI 内部使用 QProcess 同时运行多个 python 脚本。以下将执行第一个脚本并为其他两个脚本抛出QProcess::start: Process is already running

def run(self):
    self.p = QtCore.QProcess()
    scripts = ['python ./scripts/s1.py', 'python ./scripts/s2.py', 'python ./scripts/s3.py']
    for s in scripts:            
        self.p.start(s)

【问题讨论】:

【参考方案1】:

如果同一个 QProcess 已经在运行,则不能重复使用它,如错误报告所示。

只需创建一个进程列表即可:

    def run(self):
        self.processes = []
        scripts = [
            'python ./scripts/s1.py', 
            'python ./scripts/s2.py', 
            'python ./scripts/s3.py'
        ]
        for script in scripts:
            process = QtCore.QProcess()
            self.processes.append(process)
            process.start(script)

【讨论】:

以上是关于如何使用 QProcess 同时运行多个 python 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 QProcess 运行 vim 终端

运行文件时如何使用qprocess实时读取输出

如何在 PySide 中获取 QProcess 运行的命令的输出?

如何使用 QProcess 避免 waitForStarted 以阻止 GUI 冻结?

运行 jar 文件使用 Qt (QProcess)

QProcess 执行一个 c++ 文件