Ya que a veces tengo de proceso de producto cruzado de dos capas vectoriales con secuencias de comandos de geoprocesamiento, me causa el uso de bucles anidados como
source_count = source_layer.featureCount()
target_count = target_layer.featureCount()
nsource = 1.0
for f_source in source_layer.getFeatures():
ntarget = 1.0
for f_target in target_layer.getFeatures():
#do something
targetprogress = 100 * (ntarget / target_count)
ntarget += 1
sourceprogress = 100 *(nsource / source_count)
progress.setPercentage(sourceprogress)
nsource += 1
Cuando ambas capas están formadas de, digamos, unos diez miles de características, el proceso puede ser muy lento, y a comunicar al usuario que el tratamiento todavía está vivo, no tendría mucho sentido tener una barra de progreso para cada bucle interno y externo.
No creo que esto se puede lograr con el estándar de procesamiento de herramientas gui, pero esto, combinado con algunos Qt
widgets? Me gustaría hacer el procesamiento de una secuencia de comandos, no es un plugin, en el que la Qt
formulario de diversos QprogressBars
sería fácil de implementar.