Il 19/06/2022 12:28, Andrea Giudiceandrea ha scritto:
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.
Ciao Andrea,
mi scuso del ritardo nel risponderti ma ero in ferie e per qualche
giorno niente pc.
La tua soluzione, come sempre, ha risolto efficacemente il problema e
Toto ne ha fatto un post.
https://github.com/Korto19/Edit-Legend-Text-Categorized
L'algoritmo ha ancora qualche problema con layer filtrati ma per ora non
ho avuto modo di capire come risolvere.
Grazie ancora e a presto
Giulio
_______________________________________________
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user