Hola,
Leyendo el link de las
vLayers que me pasaste y un código que encontré con google en el
foro oficial de QGIS, tengo el siguiente código:
uri = QgsDataSourceURI()
# set host name, port, database name, username and password
uri.setConnection("localhost", "3306", "final", "root", "123456" )
# set database schema, table name, geometry column and optionaly subset (WHERE clause)
uri.setDataSource("public", "potrero", "coordenada", "id_potrero = 1" )
vlayer = QgsVectorLayer(uri.uri(), "nombre_de_capa", "mysql" )
if not vlayer.isValid():
print "Fallo al cargar la capa!"
El uri.setDataSource lo probé con/sin "public" y también con/sin el "id_potrero" del final (que es optativo, de cualquier manera). Además, cuando declaro la variable "vlayer" con el método QgsVectorLayer, lo hice con el parámetro "mysql" y con "ogr".
A pesar de todos los cambios y pruebas que hice, vlayer.isValid() siempre decía que fallaba al cargar la capa.
Ya sé que no has trabajado con MySQL, pero tienes algún idea de cual sea mi problema?
Busqué por MySQL en la documentación, pero no apareció nada :'(
P.D.: La indentación del if y el print las tengo correctas, solo que el foro no me permitió dejar el espacio al inicio (y el tag code dejaba todo ese párrafo en una linea)
P.D. Off-topic: Me tomé unas vacaciones, por eso no respondí antes :B