[Gfoss] Fwd: percorsi relativi nelle azioni

Giuseppe Sucameli sucameli a faunalia.it
Mer 26 Gen 2011 05:31:54 CET


Salve a tutti,

2011/1/25 marco zanieri <marcozanieri a 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 ;)
Saluti.



> Il giorno 25 gennaio 2011 15:43, Giuseppe Sucameli <sucameli a 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 a gmail.com>
>>
>> -- Giovanni --
>>>
>>>
>>> _______________________________________________
>>> Iscriviti all'associazione GFOSS.it:
>>> http://www.gfoss.it/drupal/iscrizione
>>> Gfoss a 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 a gmail.com
>
>            cartografia tematica
>           banche dati territoriali
>      sistemi informativi geografici
>       applicazioni GIS e webGIS
>
>
>
>
>


-- 
Giuseppe Sucameli
-------------- parte successiva --------------
Un allegato HTML ?tato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20110126/6de051fc/attachment.htm>


Maggiori informazioni sulla lista Gfoss