从GUI取消QGIS处理脚本的干净方法


12

我已经编写了一个QGIS处理脚本,可以进行最接近的设施分析。以完整的输入数据集(地址为20k,起点为100,目标点,OSM道路网为线束为13k)运行大约3个小时,因此使用了各种进度指示器,以使用户确信它是仍然有效(日志输出,进度条,剩余时间,橡皮筋指示最近处理过的设施的方式,请参见下面的屏幕截图):

在此处输入图片说明

现在,我想取消正在运行的脚本,据我所知,这只能[X]在处理脚本gui窗口的右上角完成。

但是这样做的话,脚本仍然按照蓝色橡皮筋,处理时间和进度条指示进行处理。

在此处输入图片说明

在此处输入图片说明

...以及任务管理器中的系统资源:

在此处输入图片说明

在此处输入图片说明

但是,几分钟后(约14分钟),脚本将停止处理,并且系统不再消耗资源:

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

由于关闭窗口和停止处理之间的时间间隔对我来说似乎是不可预测的,因此我的问题是:这是取消QGIS处理脚本的推荐方法,还是有其他方法可以从gui中彻底取消此类脚本?


当然,这既不是最好的方法,也不是最清晰的方法,但是我通常会从Windows任务管理器中彻底终止该过程:因此,此操作将导致QGIS关闭,而且还会中断脚本并节省系统资源。但是,如果您想了解剩余时间,可以根据功能的迭代次数设置进度条(我不知道这是否是您想要的)。
mgri

也许这篇文章可能会有所帮助:如何正确终止Processing框架中的Python脚本?。特别是基因的答案sys.exitfunc()
约瑟夫

Answers:


2

从命令外壳中,“ taskkill / f / im qgis-ltr-bin.exe / t”将立即终止该过程。根据您的需求,我认为没有gui解决方案。在QGIS中,如果您想干净地结束流程,则在结束流程时必须等待程序。但是通过命令shell,这将使您立即前进。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.