Intento desarrollar un complemento para agregar capas postgis a qgis desde un complemento como parte del aprendizaje de Python.
El código para agregar una capa postgis se toma del libro de cocina y funciona bien si lo ejecuto desde la consola de Python dentro de qgis (si se presiona el botón OK en el cuadro de diálogo resultado == 1 y debería agregar mi capa a qgis).
Pero si lo ejecuto desde mi complemento, arroja el mensaje NameError: el nombre 'QgsDataSourceURI' no está definido. ¿Por qué aparece ese error ejecutándolo desde el complemento?
¿Hay alguna diferencia en cómo agrego una capa desde un complemento / dentro de una función frente a la consola de Python?
def run(self):
"""Run method that performs all the real work"""
# show the dialog
self.dlg.show()
# Run the dialog event loop
result = self.dlg.exec_()
# See if OK was pressed
if result == 1:
# Do something useful here - delete the line containing pass and
# substitute with your code.
uri = QgsDataSourceURI()
uri.setConnection("localhost", "5432", "test", "postgres", "postgres")
#set database schema, table name, geometry column and optionaly subset(WHERE clause)
uri.setDataSource ("basic", "cities", "geom")
# Defining the layer name and layer type for QGIS?
vlayer=QgsVectorLayer (uri .uri() ,"cities","postgres")