Я намагаюся розробити плагін, щоб додати шари postgis до qgis з плагіна як частину навчального пітона.
Код для додавання шару postgis взято з кулінарної книги і справно працює, якщо я запускаю його з консолі python в межах qgis (Якщо в діалоговому вікні натиснути кнопку OK результат == 1 і слід додати мій шар до qgis).
Але якщо я запускаю його зі свого плагіна, він кидає повідомлення NameError: ім'я 'QgsDataSourceURI' не визначено. Чому я отримую цю помилку під час запуску з плагіна?
Чи є різниця в тому, як я додаю шар з плагіна / всередині функції проти консолі 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")