Python 如何通过单击QProgressDialog的“取消”按钮取消QProcess?

Python 如何通过单击QProgressDialog的“取消”按钮取消QProcess?,python,pyqt,qprocess,Python,Pyqt,Qprocess,编辑: 请向下滚动查看新问题。这是原件: 我有以下代码: self.progress = QtGui.QProgressDialog("Running", "Cancel", 0, 0) self.progress.show() command = "./some_script.exe" args = [ "some", "args"] process = QtCore.QProcess(self) process.start(command, args) self.progress.

编辑:

请向下滚动查看新问题。这是原件:

我有以下代码:

self.progress = QtGui.QProgressDialog("Running",  "Cancel", 0, 0)   
self.progress.show()
command = "./some_script.exe"
args =  [ "some", "args"]
process = QtCore.QProcess(self)
process.start(command, args)
self.progress.close()
当我运行它时,进程对话框在启动QProcess后立即关闭。在QProcess完成之前,如何保持其运行

多谢各位

编辑:

解决方法:我必须将完成的信号连接到关闭进度对话框的函数:

QtCore.QObject.connect(self.process,QtCore.SIGNAL("finished(int)"),self.processCompleted)
然后:

def processCompleted(self):
    self.progress.close()

我的新问题是,如何通过单击“进度”对话框中的“取消”按钮来取消qprocess?

要使用“进度”对话框的“关闭”按钮停止流程,请执行以下操作:

self.progress.canceled.connect(self.process.terminate)

请修正你的问题,使之成为一个清晰、自上而下的可读问题。最好使用简单的可运行示例,重现您的问题。谢谢