PYQGIS中的URI问题

时间:2012-03-02 05:12:13

标签: python qgis plugins

我正在使用 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 应该包含什么?

1 个答案:

答案 0 :(得分:0)

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