我正在使用 python 插件 地理信息系统.我开发的插件与 rt sql层 并同样合作 地理信息系统。当我运行 qgis exe 时它打开正常。但是在我的 好的 按钮,我有以下代码来形成 .

# create the layer                      
            uri = self.db.getURI()
            uri.setDataSource("", "(" + query + ")", geomFieldName, "", uniqueFieldName)
            vl = self.iface.addVectorLayer(uri.uri(), newLayerName, self.db.getProviderName())

            QApplication.restoreOverrideCursor()

            if vl and vl.isValid():
                    self.saveQuery()
                    self.accept()

获取URI() 以另一种形式定义如下:

def getURI(self):
            # returns a new QgsDataSourceURI instance

            return qgis.core.QgsDataSourceURI( self.uri.connectionInfo() )

单击时 好的 按钮它给我错误说

 return qgis.core.QgsDataSourceURI( self.uri.connectionInfo() )
AttributeError: 'NoneType' object has no attribute 'connectionInfo'

什么应该 统一资源标识符 包含??

有帮助吗?

解决方案

看起来 getURI() 中的 self.uri 未初始化。你检查过这个吗?您的片段不允许重现该问题。尝试发布 self.uri 填充的代码(并检查这部分是否实际执行)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top