파이썬 학습의 일환으로 플러그인에서 qgis에 postgis 레이어를 추가하는 플러그인을 개발하려고합니다.
postgis 레이어를 추가하는 코드는 쿡북에서 가져오고 qgis 내의 파이썬 콘솔에서 실행하면 정상적으로 작동합니다 (대화 상자 결과 == 1에서 확인 버튼을 누르면 qgis에 레이어를 추가해야합니다).
그러나 플러그인에서 실행하면 NameError : name 'QgsDataSourceURI'메시지가 정의되지 않습니다. 플러그인에서 오류가 발생하는 이유는 무엇입니까?
플러그인 / 함수 내부에서 파이썬 콘솔과 레이어를 추가하는 방법에 차이가 있습니까?
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")
파이썬 콘솔 QGIS에 PostGIS 레이어를 추가하기 위해 패턴을 사용하려고하는데 실패했습니다- "NameError : name 'self'is not defined"(. 무엇이 잘못되었는지 알려주시겠습니까? python에서 좋습니다) 여기 내 코드 gis.stackexchange.com/questions/245985/…
—
Jane Jane