【问题标题】:unable to start exe file with pyside Qprocess无法使用 pyside Qprocess 启动 exe 文件
【发布时间】:2021-02-14 22:26:39
【问题描述】:

我无法从 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()

【问题讨论】:

    标签: python pyqt5 pyside2 qprocess


    【解决方案1】:

    这个问题可能是因为“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)
    

    【讨论】:

    • 对此进行了尝试,并为 p 和进程列表输出添加了打印语句,如下所示 []并且exe文件没有工作
    • @HoussamFarag 我不明白您的评论,请更好地解释自己,否则将无法帮助您
    • 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() print(p) self.processes.append(p) print(self.processes)
    • @HoussamFarag 以同样的方式返回,在您发表连贯的评论之前,我不会回答任何问题,我将继续前进。使用这种类型的 cmets,您不鼓励帮助您。 “exe文件不起作用”是什么意思?如果您需要更多帮助,则必须提供minimal reproducible example,因为错误可能出在您未显示的部分。
    • 我将进程列表添加到类 init 并为 p 和进程列表添加了 2 个打印语句,输出如您在第一条评论中看到的显示进程和进程列表但 exe文件没有被执行
    最近更新 更多