[QGIS-it-user] La variabile speciale di QGIS @value

Andrea Giudiceandrea andreaerdna a libero.it
Dom 17 Set 2023 02:26:05 PDT


Il 16/09/2023 19:56, Totò Fiandaca ha scritto:

 > Ho chiesto anche nel gruppo telegram internazionale di QGIS qui [1] la
 > risposta, forse riesci a capirci qualcosa?

Ciao Salvatore,
purtroppo non ho un account Telegram e quindi non posso leggere la risposta.


> la variabile @value usata nell'ambito della formattazione condizionale 
> NON dovrebbe essere quella che cerco io o forse sì!.
> 
> la @value è una variabile che è visibile (quindi utilizzabile) in alcuni 
> contesti come per esempio nella sovrascrittura definita da dati (per 
> etichette e simbologia per esempio)


Il codice sorgente di QGIS ha vari milioni di linee di codice e non è 
sempre facile trovare quello che si cerca :-)

Grazie alle tue indicazioni ho trovato le altre parti del codice in cui 
verrebbe usata una variabile @value che effettivamente è diversa da 
quella variabile @value usata nel contesto della formattazione condizionale.

Il commit [1] che dovrebbe aver introdotto tale variabile @value è, 
anche questo, del 2015, ma di Nyall Dawson come dicevi tu.

Per quanto poso capirne, sembrerebbe che questa variabile, usata nel 
contesto della sovrascrittura definita dei dati, dovrebbe restituire il 
valore contenuto originariamente nel widget della proprietà per la quale 
viene attivata la sovrascrittura definita dei dati.

Un esempio di come dovrebbe funzionare tale variabile è presente in un 
bug report [2] di 6 anni fa che poi risulta essere stato risolto [3]:

****
Descrizione

At some stage during the 2.99 dev cycle, the font size @value variable 
for labelling properties started returning NULL instead of actual value.

Steps to reproduce
Create a new project, and add a vector layer
Open the style dock, and go to the labelling panel
Activate "show labels for this layer", and set the "Size" property to 10
Click on the data-defined property button for the "Size" property and 
select the "Edit..." menu item
In the expression window, enter @value
Prior to 2.99, it would return the "Size" value, i.e. 10, but under 
current master build, it returns NULL
****

In vari casi, però, mi pare che il lavoro di implementazione di tale 
variabile sia rimasto in sospeso: vedi, per esempio, le parti di codice 
[4] [5] [6] che riportano il commento "TODO - show actual value"

Spero che tu riesca a capirci qualcosa in più :-) e a farci sapere!

A presto.

Andrea


[1] 
https://github.com/qgis/QGIS/commit/a8f8cfefe5fc08b5f56362f6e8fdcf97ecaabd7b 

[2] https://issues.qgis.org/issues/16362
[3] https://github.com/qgis/QGIS/pull/4273
[4] 
https://github.com/qgis/QGIS/blob/a9a19d1b1553dae8d42a49d44cb525e4fae4c245/src/gui/callouts/qgscalloutwidget.cpp#L44-L47
[5] 
https://github.com/qgis/QGIS/blob/a9a19d1b1553dae8d42a49d44cb525e4fae4c245/src/gui/labeling/qgslabelinggui.cpp#L55-L57
[6] 
https://github.com/qgis/QGIS/blob/a9a19d1b1553dae8d42a49d44cb525e4fae4c245/src/gui/qgstextformatwidget.cpp#L2131-L2133


Maggiori informazioni sulla lista QGIS-it-user