Salve,
sto effettuando il porting di VTerrain plugin alla versione 2.01 di QGis. Ho aggiunto con successo il file Metadata.txt e il plugin è ora visibile ed eseguibile, ma al run viene ritornato il messaggio di errore: File ".qgis2/python/plugins\VTerrain\VTerrain.py", line 180, in run if name.endsWith(".bt"): AttributeError: 'unicode' object has no attribute 'endsWith' Qualche suggerimento .. ? Saluti e grazie Roberto _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
probabilmente prima name era una QString ora e' una semplice str di python => devi trovare la funzione equivalente in python per il controllo che vuoi eseguire (if name.endsWith(".bt"):) purtroppo eliminare QString e soprattutto QStringList vuol dire spesso trovare le funzioni equivalenti in python con conseguenti cambi di logica => dover ritestare il plugin!
QString e str sono due classi differenti... alla lunga molto simili e non avrai difficolta' a trovare l'equivalenti... stessa cosa per QStringLIst, a meno di non aver usato pesantemente i metodi che ti pemette QStrignList
In genre non e' mai consigliabile legarsi mani e piedi ai tipi di dati di librerie esterne... specie quando queste sono librerie legate alla visualizzazione python e' gia' potente di per se... le Qt le lascerei giusto quando serve interagire con Qt o con QGIS
ciao ginetto 2013/9/24 Geo DrinX <[hidden email]>
_______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
Il codice sorgente è questo: name = layer.source(); if name.endsWith(".bt"): ...eccetera come comportarsi, in questo caso ? Mah. Roberto _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
Il giorno Tue, 24 Sep 2013 12:50:38 +0200
Geo DrinX <[hidden email]> ha scritto: > ...... > Il codice sorgente è questo: > > name = layer.source(); > if name.endsWith(".bt"): > > ...eccetera > > come comportarsi, in questo caso ? Mah. provato: if '.bt' in name: ? sarebbe meglio garantirsi che siano proprio gli ultimi caratteri; in perl ci sono degli appositi operatori, in python purtroppo non so, ma penso che una rapida ricerca in google possa risolvere :-) > Roberto ciao, giuliano _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
In reply to this post by geodrinx
non capisco la domanda... name e' una str di python... prima invece era una QString, perche' era quel che restituisce layer.source(), ma con le SIP2.0 c'e' una mappatura diretta tra QStriung e str (pero' non sono la stessa classe e dunque non hanno gli stessi metodi) che so, prova con una regexp (piu' sicura) o come ha suggerito giuliano ciao ginetto
2013/9/24 Geo DrinX <[hidden email]>
_______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
In reply to this post by Giuliano Curti
Thank you all. I solved ! I inserted a code like this:if QGis.QGIS_VERSION_INT < 10900: if name.endsWith(".bt"): fileTemp.write (' <Surface_Type>0</Surface_Type>\n' ) else: if (name[-3:] == (".bt")): fileTemp.write (' <Surface_Type>0</Surface_Type>\n' ) Il giorno 24 settembre 2013 14:37, giulianc51 <[hidden email]> ha scritto: Il giorno Tue, 24 Sep 2013 12:50:38 +0200 _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
Free forum by Nabble | Edit this page |