无法使用 pyside Qprocess 启动 exe 文件

问题描述

我无法从 pyside GUI 启动 exe 文件, 我试图浏览一个 exe 文件并打开它,但我可以看到 qprocess 文档太少,我找不到正确运行它的方法

这是我的代码

   def run_automatch(self):
    file_path,_ = QFileDialog.getopenFileName(self,'Single File',QtCore.QDir.currentPath(),'*.exe')
    p = QProcess()
    p.setProgram(file_path)
    p.setWorkingDirectory(QtCore.QDir.currentPath())
    p.start()

解决方法

这个问题可能是因为“p”是一个局部变量,所以它会在run_automatch完成后立即销毁。一个可能的解决方案是创建一个列表,它是类的属性并存储 QProcesses:

def __init__(self,...):
    # ...

    self.processes = []

def run_automatch(self):
    file_path,_ = QFileDialog.getOpenFileName(
        self,"Single File",QtCore.QDir.currentPath(),"*.exe"
    )
    if not file_path:
        return

    p = QProcess()
    p.setProgram(file_path)
    p.setWorkingDirectory(QtCore.QDir.currentPath())
    p.start()

    self.processes.append(p)