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

时间:2014-10-15 15:37:39

标签: 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.close()

当我运行它时,进度对话框在启动QProcess后立即关闭。在QProcess结束之前,如何让它保持运行?

非常感谢

编辑:

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

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

然后:

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

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

1 个答案:

答案 0 :(得分:1)

使用进度对话框的关闭按钮停止该过程:

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