[Qgis-developer] PyQGIS - Selecting Spatialite Datasource at runtime

Luiz Motta motta.luiz at gmail.com
Sun Sep 12 12:12:19 EDT 2010


Hi all,

I am starting an plugin for work with spatialite and postgresql/postgis, 
then, maybe is usefull (part of code for make an list  with connections 
of spatialite):

lstConnection = QGisDatabase.getListConnection("SpatiaLite")
if lstConnection.count() > 0:
  lstPaths = QtCore.QStringList()
  for item in lstConnection:
    lstPaths.append(QGisDatabase.getStringConnectSqlite(item))
  self.ui.comboBoxDatabase.addItems(lstPaths)

class QGisDatabase():
  @staticmethod
  def getListConnection(typDb):
    """ typDb = SpatiaLite OR PostgreSQL """
    typConn = QString("/%1/connections").arg(typDb)
    settings = QSettings()
    settings.beginGroup(typConn)
    lstQstringConn = settings.childGroups()
    settings.endGroup()
    return lstQstringConn
  @staticmethod
  def getStringConnectSqlite(connection):
    settings = QSettings()
    sKey = QString("/SpatiaLite/connections/%1/sqlitepath").arg(connection)
    return settings.value(sKey).toString()
  @staticmethod
  def getStringConnectPostgres(connection):
 ....



Germán Carrillo escreveu:
> Hi Noli, 
>
> sure! Here it is: 
>
> http://downloads.tuxfamily.org/tuxgis/geoblogs/visor_qgis_capas_spatialite/visor_pyqgis.tar.bz2
>
> Regards, 
>
> Germán
>
> 2010/9/10 Noli Sicad <nsicad at gmail.com <mailto:nsicad at gmail.com>>
>
>     Hi Germán,
>
>     Thank you.
>
>     Now it is English :-). Using Google Translate.
>
>     http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&sl=auto&tl=en&u=http%3A%2F%2Fgeotux.tuxfamily.org%2Findex.php%3Foption%3Dcom_myblog%26task%3Dview%26id%3D251%26Itemid%3D59
>     <http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&sl=auto&tl=en&u=http%3A%2F%2Fgeotux.tuxfamily.org%2Findex.php%3Foption%3Dcom_myblog%26task%3Dview%26id%3D251%26Itemid%3D59>
>
>     German, would be able to share the whole source code of the project?
>
>     Thanks again.
>
>     Regards, Noli
>
>
>
>     On 9/11/10, Germán Carrillo <carrillo.german at gmail.com
>     <mailto:carrillo.german at gmail.com>> wrote:
>     > Hi Noli,
>     >
>     > you could use this [1] (sorry, it's in Spanish). It uses the
>     Sqlite3 Python
>     > module [2].
>     >
>     > Regards,
>     >
>     > Germán
>     >
>     > ----------------------------
>     > [1]
>     >
>     http://geotux.tuxfamily.org/index.php?option=com_myblog&task=view&id=251&Itemid=59
>     <http://geotux.tuxfamily.org/index.php?option=com_myblog&task=view&id=251&Itemid=59>
>     > [2] http://docs.python.org/library/sqlite3.html
>     >
>     > On Fri, Sep 10, 2010 at 9:49 AM, Noli Sicad <nsicad at gmail.com
>     <mailto:nsicad at gmail.com>> wrote:
>     >
>     >> Hi,
>     >>
>     >> Given, this example from PyQGIS documentation.
>     >>
>     >> ~~~~~~~~
>     >> uri = QgsDataSourceURI()
>     >> uri.setDatabase('/home/martin/test-2.3.sqlite')
>     >> uri.setDataSource('','Towns', 'Geometry')
>     >>
>     >> layer = QgsVectorLayer(uri.uri(), 'Towns', 'spatialite')
>     >> ~~~~~~~~~
>     >>
>     >> How do you do a runtime for the above. I want to select the table /
>     >> layer to load. How you figure out the  uri.setDataSource('',' ',
>     >> 'Geometry') and  QgsVectorLayer(uri.uri(), ' ', 'Spatialite')?
>     >>
>     >> ~~~~~~~~
>     >>    file = QFileDialog.getOpenFileName(self,"Open Spatialite", ".",
>     >> "Spatialite (*.sqlite)")
>     >>    fileInfo = QFileInfo(file)
>     >>
>     >>    uri = QgsDataSourceURI()
>     >>    uri.setDatabase(file)
>     >>    uri.setDataSource('',' ', 'Geometry')
>     >>
>     >>    # Add the layer
>     >>    layer = QgsVectorLayer(uri.uri(), ' ', 'Spatialite')
>     >>
>     >> ~~~~~~~~~
>     >>
>     >> Noli
>     >> _______________________________________________
>     >> Qgis-developer mailing list
>     >> Qgis-developer at lists.osgeo.org
>     <mailto:Qgis-developer at lists.osgeo.org>
>     >> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>     >>
>     >
>     >
>     >
>     > --
>     > -----------
>     >   |\__
>     > (:>__)(
>     >   |/
>     >
>     > Soluciones Geoinformáticas Libres
>     > http://geotux.tuxfamily.org/
>     >
>
>
> -- 
> -----------
>   |\__ 
> (:>__)(
>   |/   
>
> Soluciones Geoinformáticas Libres                           
> http://geotux.tuxfamily.org/
> ------------------------------------------------------------------------
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>   



More information about the Qgis-developer mailing list