[QGIS-it-user] Modificare la legenda di un layer categorizzato
Andrea Giudiceandrea
andreaerdna a libero.it
Dom 19 Giu 2022 03:28:30 PDT
Ciao Giulio,
sei riuscito a risolvere il problema apportando le modifiche suggerite?
A presto.
Andrea
Il 14/06/2022 17:31, Andrea Giudiceandrea ha scritto:
> Ciao Giulio,
> prima di tutto la riga 23 (new_renderer =
> QgsCategorizedSymbolRenderer()) mi pare sia superflua. Comunque il
> problema non dipende da questo.
>
> A mio avviso il problema è dovuto al fatto che quando, nel ciclo for,
> assegni la simbologia di una categoria alla variabile new_sym (new_sym
> = category.symbol()), l'ownership di tale oggetto non viene
> trasferito, mentre nella creazione di un nuovo oggetto
> QgsRendererCategory(category.value(), new_sym,
> str(new_label[i])+alt_value) l'ownership della simbologia deve essere
> trasferito alla categoria (come indicato nella documentazione della
> classe QgsRendererCategory [1]).
>
> Questo tentativo di trasferire ad un oggetto l'ownership che non si
> possiede di un altro oggetto creare il crash quando si tenta di
> accedere nuovamente all'oggetto.
>
> Per ovviare a tale problema bisogna creare un clone ("deep copy") del
> simbolo in modo da possederne l'ownership affinché possa essere
> trasferito correttamente all'oggetto QgsRendererCategory.
>
> Quindi penso che il problema possa essere risolto modificando il
> codice in uno dei seguenti due modi:
>
> ...
> for i, category in enumerate(categories):
> new_sym = category.symbol()
> new_categories.append(QgsRendererCategory(category.value(),
> new_sym.clone(), str(new_label[i])+alt_value))
> ...
>
> ...
> for i, category in enumerate(categories):
> new_sym = category.symbol().clone()
> new_categories.append(QgsRendererCategory(category.value(),
> new_sym, str(new_label[i])+alt_value))
> ...
>
>
> A presto.
>
> Andrea
>
>
> Il 14/06/2022 13:23, Giulio Fattori ha scritto:
>>
>> Buongiorno,
>>
>> Ho realizzato questo script da console per modificare la legenda di
>> un layer categorizzato.
>>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.osgeo.org/pipermail/qgis-it-user/attachments/20220619/41fa7c83/attachment.htm>
Maggiori informazioni sulla lista
QGIS-it-user