[Gfoss] pyqgis: layer.getFeatures()

Salvatore Larosa lrssvtml a gmail.com
Sab 19 Apr 2014 10:18:41 CEST


Ciao Giuliano,

2014-04-18 19:23 GMT+02:00 giulianc51 <giulianc51 a gmail.com>:

> ciao a tutti,
>
>
> provo a porre quì un quesito che riguarda (py)qgis;
>
> volevo prevedere in un plugin, durante il trattamento di layer di
> dimensione importante, la stampa di un contatore per dare all'utente il
> senso dell'esecuzione in corso, a mò di progress bar; mi scontro però
> con un comportamento, per me inatteso, del comando in oggetto;
>
> mi aspettavo dall'esecuzione dei comandi (verificabile anche da console
> python):
>         i = 0
>         for f in layer.getFeatures():
>                 i +=1
>                 print i
> una visualizzazione progressiva (ho controllato di non aver posto una
> virgola in fondo al comando print); invece sembra che il ciclo FOR
> catturi il sistema e solo alla fine vi è la stampa quasi immediata di
> tutta la sequenza;
>


eseguendo il codice nella console python di QGIS, tu dovresti vedere ogni
singolo
elemento del layer, in modo continuo, senza aspettare la fine del ciclo.


>
> sto sbagliando qualcosa senza accorgermene ?
>


No :-), basta sostituire il "print" con "emit()". Puoi definire un metodo
che aggiorni la tua barra progressiva poi nel ciclo richiami il segnale
connesso al metodo. Dovrebbe funzionare!


Buona Pasqua!


>
> grazie, ciao,
> giuliano
>
> _______________________________________________
> Gfoss a lists.gfoss.it
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 666 iscritti al 22.7.2013




-- 
Salvatore Larosa
linkedIn: http://linkedin.com/in/larosasalvatore
twitter: @lrssvt
skype: s.larosa
IRC: lrssvt on freenode
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20140419/bdd3d7ad/attachment.html>


Maggiori informazioni sulla lista Gfoss