İstediğiniz bilgileri almak için QSettings
sınıfı kullanmanız gerekir . Bu, Windows kayıt defteri gibi hiyerarşik bir yapı kullanır. QGIS'in en son sürümüne sahipseniz, bu hiyerarşiyi Ayarlar> Seçenekler> Gelişmiş'i kullanarak görebilirsiniz.
Aşağıdaki kod Python Konsolu'ndan çalışır. Bunu bir eklentiden veya QGIS dışından denemedim, bu nedenle bu durumlarda bazı ek çalışmalar gerekebilir.
Hiyerarşiyi görmek için bunu QGIS python konsolunda kullanın ...
from PyQt4.QtCore import QSettings
qs = QSettings()
for k in sorted(qs.allKeys())
print k
Çıktı bazı ipuçları veriyor ...
.. snip ..
Plugins/searchPathsForPlugins
Plugins/valuetool/mouseClick
PostgreSQL/connections/GEODEMO/allowGeometrylessTables
PostgreSQL/connections/GEODEMO/database
PostgreSQL/connections/GEODEMO/dontResolveType
PostgreSQL/connections/GEODEMO/estimatedMetadata
.. snip ...
Böylece, PostgreSQL / Connections / ön ekini filtreleyerek veritabanı bağlantısı ayrıntılarını alabilirsiniz.
Bu durumda GEODEMO adında bir bağlantım var, kullanıcı adını şöyle alabilirim ...
from PyQt4.QtCore import QSettings
qs = QSettings()
print qs.value("PostgreSQL/connections/GEODEMO/username")
>> steven
Aklınızda bir veritabanı olduğunda, PostGisDBConnector sınıfını kullanarak tabloların listesini alabilirsiniz .
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()
Bağlantı noktasının sayı değil, bir dize olması gerektiğini unutmayın.