我尝试从我的db postgis添加一个表到我的QGIS接口中,我使用的是一个具有良好参数的脚本。但我的问题是,当我运行我的函数,我的QGIS错误和关闭。
from qgis.core import *
from qgis.core import QgsProject
from PyQt5.QtCore import QFileInfo
from qgis.core import QgsVectorLayer, QgsDataSourceUri
from qgis.utils import *
def run_script(iface):
uri = QgsDataSourceUri()
uri.setConnection("localhost", "5432", "Base_test", "user", "passeword")
uri.setDataSource("public", "BPE", "geom")
layer = QgsVectorLayer(uri.uri(), "bpe", "user")
if not layer.isValide():
print("Layer %s did not load" %layer.name())
QgsProject.instance().addMapLayer(layer)上面说这层没有装载。在此之后,需要重新启动QGIS。
有人能帮帮我吗。
我正在使用QGIS 3.10
发布于 2020-09-03 15:07:33
试试下面的代码:
from qgis.core import *
from qgis.core import QgsProject
from PyQt5.QtCore import QFileInfo
from qgis.core import QgsVectorLayer,
QgsDataSourceUri
from qgis.utils import *
def run_script(iface):
uri = QgsDataSourceUri()
uri.setConnection("localhost", "5432", "Base_test",
"user", "passeword")
uri.setDataSource("public", "BPE", "geom")
layer = QgsVectorLayer(uri.uri(), "bpe", "postgres")
if not layer.isValid():
print("Layer %s did not load" %layer.name())
QgsProject.instance().addMapLayer(layer)
run_script()您所做的拼写mistake:if not layer.isValide()-->if notlayer.isValid()
layer = QgsVectorLayer(uri.uri(), "bpe", "user")--> layer=QgsVectorLayer(uri.uri(), "bpe", "postgres")
run_script()查看文档:https://qgis.org/pyqgis/3.0/core/Vector/QgsVectorLayer.html
干杯
https://stackoverflow.com/questions/62510556
复制相似问题