问题描述
我无法从 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)