Pythonの学習の一環として、プラグインからpostgisレイヤーをqgisに追加するプラグインを開発しようとしています。
postgisレイヤーを追加するためのコードはクックブックから取得され、qgis内のpythonコンソールから実行すると正常に動作します(ダイアログボックスで[OK]ボタンが押された場合、結果== 1であり、レイヤーをqgisに追加する必要があります)。
しかし、プラグインから実行すると、メッセージNameError:name 'QgsDataSourceURI' is not definedがスローされます。プラグインから実行するとエラーが発生するのはなぜですか?
プラグインから/関数内からレイヤーを追加する方法と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")
PythonコンソールQGISでパターンを使用してPostGISレイヤーを追加しようとしていますが、失敗しました-「NameError:name 'self' is not defined」()何が悪いのか教えていただけませんか? pythonで良い)。これは私のコードgis.stackexchange.com/questions/245985/…です
—
Jane