[QGIS-it-user] Azione python: nome del campo corrente?

Sto provando a cimentarmi nelle azioni di tipo python. Ho capito che per
prendere il valore di una cella in tabella attributi posso usare
'@current_field'. Ma c'è modo di prendere il nome o l'id del campo a cui
appartiene la cella?

Più in generale, sapete indicarmi dove posso trovare informazioni e/o esempi
sull'uso e creazione delle azioni (oltre al manuale utente)?

Grazie,
Alessandro

-----
Alessandro Perego
http://www.alspergis.altervista.org
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html

Riporto un'aggiornamento per chi fosse interessato.

Ho fatto alcune prove con le azioni predefinite (nelle proprietà vettore),
più precisamente con 'Mostra il valore del campo selezionato'. Questa azione
quando si clicca con il pulsante destro del mouse su una cella della tabella
attributi (e ovviamente si selezione l'azione), dovrebbe semplicemente
mostrare il valore contenuto nella cella.
Però non funziona: compare la finestra che dovrebbe contenere il valore ma è
vuota.

Tale azione è di tipo python ed è così definita:

from qgis.PyQt import QtWidgets
QtWidgets.QMessageBox.information(None, "Current field's value", "[%
@current_field %]")

Mi sono accorto dopo che nella finestra di modifica dell'azione, spostando
il cursore sull'opzione "Ambito campo", compaiono i suggerimenti sulle
variabili disponibili che sono *field_index*, *field_name* e *field_value*.
Se nel codice python sostituisco @current_field con @filed_value allora
l'azione funziona. Credo che i nomi delle variabili siano cambiati forse con
la versione 3 di QGIS ma non è stata aggiornata l'azione predefinita.

Inoltre è possibile sostituire "Current field's value" con "[% @field_index
%]" o "[% @field_name %]" per visualizzare nel titolo della
finestra-risultato l'indice o il nome del campo.
Quindi il codice python diventa ad esempio:

from qgis.PyQt import QtWidgets
QtWidgets.QMessageBox.information(None, "[% @field_name %]", "[%
@field_value %]")

Qui però succede una cosa strana: @field_index funziona sempre, invece
@field_name funziona solo se attivo l'azione dal pannello "Informazione
risultati" ma non dalla tabella attributi.

(Provato con QGIS 3.4.7 su win 10)

alper78 wrote

Sto provando a cimentarmi nelle azioni di tipo python. Ho capito che per
prendere il valore di una cella in tabella attributi posso usare
'@current_field'. Ma c'è modo di prendere il nome o l'id del campo a cui
appartiene la cella?

-----
Alessandro Perego
http://www.alspergis.altervista.org
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html