Para obtener la información que quieres, necesitas usar el QSettings
clase. Utiliza una estructura jerárquica, como el registro de Windows. Si tienes la última versión de QGIS, puedes ver esta jerarquía usando Ajustes>Opciones>Avanzado
El siguiente código funciona desde la Consola Python. No he probado esto desde un plugin o fuera de QGIS, por lo que podría ser necesario algún trabajo adicional en estos casos.
Para ver la jerarquía, usa esto en la consola pitón de QGIS...
from PyQt4.QtCore import QSettings
qs = QSettings()
for k in sorted(qs.allKeys())
print k
La salida da algunas pistas...
.. snip ..
Plugins/searchPathsForPlugins
Plugins/valuetool/mouseClick
PostgreSQL/connections/GEODEMO/allowGeometrylessTables
PostgreSQL/connections/GEODEMO/database
PostgreSQL/connections/GEODEMO/dontResolveType
PostgreSQL/connections/GEODEMO/estimatedMetadata
.. snip ...
Así que puedes obtener los detalles de conexión de la base de datos filtrando el prefijo PostgreSQL/Conexiones/
Así que en este caso tengo una conexión llamada GEODEMO, puedo conseguir el nombre de usuario así...
from PyQt4.QtCore import QSettings
qs = QSettings()
print qs.value("PostgreSQL/connections/GEODEMO/username")
>> steven
Una vez que se tiene una base de datos en mente, se puede recuperar una lista de tablas usando el Clase PostGisDBConnector .
import db_manager.db_plugins.postgis.connector as con
from qgis.core import QgsDataSourceURI
uri = QgsDataSourceURI()
uri.setConnection("127.0.0.1", "5432", "database_name", "username", "password")
c = con.PostGisDBConnector(uri)
print c
print c.getTables()
Tengan en cuenta que el puerto debe ser una cadena, no un número.