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

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 :slight_smile:

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ù :slight_smile: 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

Buongiorno,
avevo scordato questo video [1] di Nyall del 2020 dal titolo: QGIS expressions, variables, data defined settings: putting it all together!
verso la fine (guardare i marcatori di capitolo) parla, appunto, della variabile @value.

(pensavo fosse qualcosa di veramente magico, certamente utile, ma niente di eccezionale, infatti lo dice pure lui nel video)

[1] https://www.youtube.com/watch?v=h-mpUkwDdOQ

···

Ing. Salvatore Fiandaca
mobile.:+39 327.493.8955
m: pigrecoinfinito@gmail.com
C.F.: FNDSVT71E29Z103G
P.IVA: 06597870820
membro QGIS Italia - http://qgis.it/
socio GFOSS.it - http://gfoss.it/
member OSGeo - https://www.osgeo.org/member/fiandaca/
blog:**** https://pigrecoinfinito.com/
FB: Co-admin - https://www.facebook.com/qgis.it/****
TW: ****https://twitter.com/totofiandaca

43°51’0.54"N 10°34’27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario in relazione alle finalità per le quali è stato ricevuto. E’ vietata qualsiasi forma di riproduzione o divulgazione senza l’esplicito consenso di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di informare tempestivamente il mittente e distruggere la copia in proprio possesso.