<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Ciao Giulio,<br>
prima di tutto la riga 23 (new_renderer =
QgsCategorizedSymbolRenderer()) mi pare sia superflua. Comunque il
problema non dipende da questo.<br>
<br>
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]).<br>
<br>
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.<br>
<br>
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.<br>
<br>
Quindi penso che il problema possa essere risolto modificando il
codice in uno dei seguenti due modi:<br>
<br>
...<br>
for i, category in enumerate(categories):<br>
new_sym = category.symbol()<br>
new_categories.append(QgsRendererCategory(category.value(),
new_sym.clone(), str(new_label[i])+alt_value))<br>
...<br>
<br>
...<br>
for i, category in enumerate(categories):<br>
new_sym = category.symbol().clone()<br>
new_categories.append(QgsRendererCategory(category.value(), new_sym,
str(new_label[i])+alt_value))<br>
...<br>
<br>
<br>
A presto.<br>
<br>
Andrea<br>
<br>
<br>
<div class="moz-cite-prefix">Il 14/06/2022 13:23, Giulio Fattori ha
scritto:<br>
</div>
<blockquote type="cite"
cite="mid:a78270db-2bd9-035b-2a58-6261cee5ad03@tin.it">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<p><font size="2"><font face="Century Gothic">Buongiorno,<br>
</font></font></p>
<p><font size="2"><font face="Century Gothic">Ho realizzato questo
script da console per modificare la legenda di un layer
categorizzato.</font></font></p>
</blockquote>
</body>
</html>