Salve a tutti,
2011/1/25 marco zanieri <marcozanieri@gmail.com>
comunque è vero che la soluzione migliore sarebbe quella del path relativo al layer o forse meglio all’ubicazione del progetto…
ho smanettato un pò con python (fare codice python non indentato è un problema),
ed eccovi le soluzioni.
Basterà usare i successivi pezzi di codice come azioni python modificando il valore
della variabile command (“eog”, Eye Of Gnome, è il mio visualizzatore di immagini) e
della variabile imagerelpath con il campo da cui prendere il percorso.
Path relativo al layer selezionato
(funziona sia con layer vettoriali basati su file che quelli su db spatialite)
command = “eog”; imagerelpath = “immagini/tav_01.jpg”; layer = qgis.utils.iface.activeLayer(); import os.path; layerpath = layer.source() if layer.providerType() == ‘ogr’ else (qgis.core.QgsDataSourceURI(layer.source()).database() if layer.providerType() == ‘spatialite’ else None); path = os.path.dirname(str(layerpath)); image = os.path.join(path, imagerelpath); import subprocess; subprocess.Popen( [command, image ] );
Se il layer non è di tipo ogr né spatialite restituisce un errore.
Path relativo al progetto
(relativo al percorso nel quale è stato salvato il progetto attualmente aperto)
command = “eog”; imagerelpath = “immagini/tav_01.jpg”; projectpath = qgis.core.QgsProject.instance().fileName(); import os.path; path = os.path.dirname(str(projectpath)) if projectpath != ‘’ else None; image = os.path.join(path, imagerelpath); import subprocess; subprocess.Popen( [command, image ] );
Se il progetto attuale non è salvato restituisce un errore.
Spero possano esservi utili ![:wink: :wink:](/images/emoji/twitter/wink.png?v=12)
Saluti.
Il giorno 25 gennaio 2011 15:43, Giuseppe Sucameli <sucameli@faunalia.it> ha scritto:
Salve a tutti,
“percorso eseguibile apertura immagini” “%campo con il percorso
immagini”
ho appena provato ad eseguire su Ubuntu un’azione del tipo
gedit text.txt
ed ho avuto come risultato l’apertura in modifica del file ~/text.txt
Per chi non conoscesse linux, ~ è la home dell’utente, quindi, almeno su linux il
risultato è che il path da inserire deve essere relativo alla home dell’utente.
Credo sia uguale anche su windows, quindi nel tuo caso (WinXP) dovrebbe essere:
…/…/butta/immagini/tav_01.jpg
Non ne sono sicuro però, ci sarebbe da provare.
La migliore soluzione di certo sarebbe poter usare un path relativo al layer.
Saluti.
2011/1/25 Giovanni Manghi <giovanni.manghi@gmail.com>
– Giovanni –
Iscriviti all’associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell’Associazione GFOSS.it.
496 iscritti al 24.1.2011
–
Giuseppe Sucameli
–
dott. Marco Zanieri
e-mail: marcozanieri@gmail.com
cartografia tematica
banche dati territoriali
sistemi informativi geografici
applicazioni GIS e webGIS
–
Giuseppe Sucameli