[Gfoss] help su pyqgis

ciao a tutti,

stavo analizzando e provando le istruzioni del dev cookbook, in
particolare la gestione dei layer vettoriali ed il canvas; ho questi
2 problemi (in un programma standalone che usa pyqgis):

1) validità layer: quando carico un layer, eseguendo le istruzioni
indicate quì:
  http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/loadlayer.html
e quì:
  http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/canvas.html
ottengo sempre un errore di layer invalido (il layer è ovviamente
valido e perfettamente leggibile da QGIS): qualche idea di dove sbaglio?

ad es. ha qualche influenza l'istruzione initQgis() che non capisco
bene dove vada esattamente collocata: subito dopo l'import del modulo?
nel main? nella classe mainWindow?

oppure il "setPrefixPath" che non capisco se deve puntare a
"/usr/lib/qgis" o a "/usr/bin/qgis"?

2) all'avvio del programma, mi viene segnalato un warning circa
"QGraphicsScene::addItem: item has already been added to this scene";
uso le istruzioni indicate quì:
  http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/canvas.html
paragrafo
  Embedding Map Canvas;

qualche suggerimento?

grazie, ciao,
giuliano

Ciao Giuliano,

2014-10-21 18:17 GMT+02:00 giulianc51 <giulianc51@gmail.com>:

ciao a tutti,

stavo analizzando e provando le istruzioni del dev cookbook, in
particolare la gestione dei layer vettoriali ed il canvas; ho questi
2 problemi (in un programma standalone che usa pyqgis):

1) validità layer: quando carico un layer, eseguendo le istruzioni
indicate quì:
        http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/loadlayer.html
e quì:
        http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/canvas.html
ottengo sempre un errore di layer invalido (il layer è ovviamente
valido e perfettamente leggibile da QGIS): qualche idea di dove sbaglio?

ad es. ha qualche influenza l'istruzione initQgis() che non capisco
bene dove vada esattamente collocata: subito dopo l'import del modulo?
nel main? nella classe mainWindow?

oppure il "setPrefixPath" che non capisco se deve puntare a
"/usr/lib/qgis" o a "/usr/bin/qgis"?

supponendo che tu abbia una funzione main basta inizializzare le
librerie come segue:

def main(app)
    QgsApplication.setPrefixPath(qgis_prefix_path, True)
    QgsApplication.initQgis()
    ...................
    [esecuzione del programma]
    ...................
    QgsApplication.exitQgis()
    sys.exit(app.exec_())

la variabile qgis_prefix_path per linux è "/usr" oppure "/usr/local"
se hai compilato qgis
mentre per windows è il path alla cartella qgis: "C:\\OSGeo4W\\apps\\qgis"

2) all'avvio del programma, mi viene segnalato un warning circa
"QGraphicsScene::addItem: item has already been added to this scene";

solamente un warning nulla di preoccupante.

Saluti!

--
Salvatore Larosa
linkedIn: http://linkedin.com/in/larosasalvatore
twitter: @lrssvt
skype: s.larosa
IRC: lrssvt on freenode

Il giorno Tue, 21 Oct 2014 18:59:12 +0200
Salvatore Larosa <lrssvtml@gmail.com> ha scritto:

Ciao Giuliano,

ciao Salvatore,

> ....
> ad es. ha qualche influenza l'istruzione initQgis() che non capisco
> bene dove vada esattamente collocata: subito dopo l'import del
> modulo? nel main? nella classe mainWindow?
>
> oppure il "setPrefixPath" che non capisco se deve puntare a
> "/usr/lib/qgis" o a "/usr/bin/qgis"?

supponendo che tu abbia una funzione main basta inizializzare le
librerie come segue:

def main(app)
    QgsApplication.setPrefixPath(qgis_prefix_path, True)
    QgsApplication.initQgis()
    ...................
    [esecuzione del programma]
    ...................
    QgsApplication.exitQgis()
    sys.exit(app.exec_())

la variabile qgis_prefix_path per linux è "/usr" oppure "/usr/local"
se hai compilato qgis
mentre per windows è il path alla cartella qgis:
"C:\\OSGeo4W\\apps\\qgis"

[linux, non l'avevo detto :-(] grazie, provo :slight_smile:

> 2) all'avvio del programma, mi viene segnalato un warning circa
> "QGraphicsScene::addItem: item has already been added to this
> scene";

solamente un warning nulla di preoccupante.

sì, certo, solo che con qgis non accade e quindi mi chiedevo il
motivo :slight_smile:

Saluti!

grazie, gentile e disponibile come sempre (e come Ginetto :-), ciao,
giuliano