He escrito un script de procesamiento QGIS que lleva a cabo un análisis de instalación más cercano. Tomando el conjunto completo de datos de entrada (20k direcciones como puntos de inicio, ~ 100 puntos de destino, red vial OSM con ~ 13k cadenas de líneas) el script ejecuta aproximadamente 3 horas y, por lo tanto, utiliza varios indicadores de progreso, para asegurar al usuario que es todavía vivo (salida de registro, barra de progreso, tiempo restante, bandas de goma que indican el camino a la instalación más cercana recién procesada, captura de pantalla de cp. a continuación):
Ahora me gustaría cancelar la secuencia de comandos en ejecución y, por lo que puedo ver, esto solo se puede hacer con la [X]
parte superior derecha en la ventana de gui de la secuencia de comandos de procesamiento.
Pero al hacerlo, el script sigue procesándose como lo indican las bandas de goma azules, así como el tiempo de procesamiento y la barra de progreso ...
... y los recursos del sistema en el administrador de tareas:
Sin embargo, un par de minutos (~ 14min) más tarde, el script detiene el procesamiento y el sistema ya no consume más recursos:
Dado que el intervalo de tiempo entre cerrar la ventana y detener el procesamiento me parece bastante impredecible, mi pregunta es: ¿Es esta una forma recomendada de cancelar los scripts de procesamiento de QGIS, o hay otras formas de cancelar limpiamente dichos scripts de la interfaz gráfica de usuario?
fuente
sys.exitfunc()
.Respuestas:
Desde el shell de comandos, "taskkill / f / im qgis-ltr-bin.exe / t" terminaría el proceso de inmediato. Sin embargo, no creo que haya una solución gui, basada en lo que estás buscando. En QGIS, si desea finalizar el proceso limpiamente, tendría que esperar al programa al finalizar el proceso. Pero a través del comando shell esto le permitiría avanzar de inmediato.
fuente