我正在使用 qgis 的python插件。我开发了与 rt sql layer 相同的插件,并在 qgis 中使用了同样的操作。 当我运行qgis exe时它的开启很好。但是在我的 ok 按钮上,我有以下代码来形成图层。
# 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()
getURI()以另一种形式定义如下:
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'
URI 应该包含什么?
答案 0 :(得分:0)
看起来getURI()中的self.uri未初始化。你检查过这个吗?您的代码段不允许重现该问题。尝试发布填充self.uri的代码(并检查该部分是否实际执行)。