[QGIS-it-user] Azioni QGIS

Buongiorno
Ho un layer puntuale che negli attributi contiene nomi di file in formato .pdf o .mpg e vorrei attivare una azione in base al tipo di file.

Problema 1

Se avessi solo un file pdf poteri fare in questo modo:
Ho definito:
- una variabile di ambiente path_pdf con il percorso assoluto della cartella che contiene il file
- una variabile di ambiente exe_pdf con l'eseguibile del visualizzatore file pdf
Ma non trovo la giusta sintassi nella espressione di questi tre componenti: (esempio @exe_pdf @path_pdf [% "NOME_FILE" %] ) da inserire nelle azioni

Problema 2

Per distinguere i file pdf dai file mpg che sono contenuti nello stesso campo, posso usare codice python ?
Avete un esempio di codice da inserire nelle azioni ?

Versione QGis 3.16 su Windows 10

Grazie
Franco Cazzola

Ciao Franco,

Problema 1

Se avessi solo un file pdf poteri fare in questo modo:
Ho definito:
- una variabile di ambiente path_pdf con il percorso assoluto della cartella che contiene il file
- una variabile di ambiente exe_pdf con l'eseguibile del visualizzatore file pdf
Ma non trovo la giusta sintassi nella espressione di questi tre componenti: (esempio @exe_pdf @path_pdf [% "NOME_FILE" %] ) da inserire nelle azioni

se hai impostato una tua variabile personale, allora direi che ti manca un pezzo di concatenazione:

@path_pdf || '/' || [% "NOME_FILE" %]

o simile perché la tua variabile `path_pdf` è il percorso della cartella

Problema 2

Per distinguere i file pdf dai file mpg che sono contenuti nello stesso campo, posso usare codice python ?
Avete un esempio di codice da inserire nelle azioni ?

certamente. Molto sbrigativo con `endswith`:

s = '/home/matteo/file.pdf'
if s.endswith('pdf'):
     .....
else:
     .....

altrimenti, un po' più sofisticato (ma anche blindato) con os:

import os

file_name, file_ext = os.path.splitext('/home/matteo/file.pdf')
# file_ext -> .pdf

Saluti

Matteo

Ciao Franco,
tramite l'azione "Open"/"Apri", QGIS su Windows può far aprire automaticamente ogni file dal programma predefinito in base all'associazione impostata nel sistema operativo tra estensione del file e programma da utilizzare (come avviene normalmente in "Esplora risorse"/"Esplora file").

Forse sarebbe il caso se esplicitassi quali valori contengono esattamente le tue variabili, qual è il nome del/dei campo/campi che intendi utilizzare e quali valori (almeno un esempio) contengono, quali impostazioni hai usato per la creazione dell'azione e quale espressione esattamente hai utilizzato.

A presto.

Andrea Giudiceandrea

Il 24/01/2022 15:28, Franco Cazzola ha scritto:

Buongiorno
Ho un layer puntuale che negli attributi contiene nomi di file in formato .pdf o .mpg e vorrei attivare una azione in base al tipo di file