18.4. 探索iface和QGis¶
这个iface公司 在前面的代码片段中使用的类在每个PyQGIS代码中都很重要;它用于访问大多数图形QGIS组件,从显示的层到工具栏按钮。
这个iface公司 类是C++类的Python包装器,QgisInterface,记录在 http://qgis.org/api/classQgisInterface.html 。 大多数QGIS类有一个Qgs前缀。一些特殊的班级可以Qgis或QGis前缀。
前缀Qgs是Qt由Gary注册的命名空间谢尔曼,QGIS的创造者,所以Qt( Q )加里雪曼( gs )
最常用的iface公司类的引用帆布显示地图的位置:
canvas = iface.mapCanvas()
该类还可以用作加载栅格或矢量图层的快捷方式;例如加载栅格,"path/to/my/raster.tif",并命名它我的栅格在“图例”面板中。这个 可以通过键入以下命令来完成:
iface.addRasterLayer("path/to/my/raster.tif", "myraster")
注意用Windows写路径。路径字符串,例如 C:pathtoraster.tif ,具有特殊的转义字符, , 因此通过双重转义重写它 C:pathtoraster. tif 或者使用Unix符号, C:/path/to/myraster.tif , 或使用原始字符串通知Python,添加 r 如在 r"C:pathtoraster.tif" 。 通常,使用类似于os.path 。
QGis是另一个包含一些有用常量的类,例如QGIS版本或一些默认值。通过键入以下命令, 我们可以找到在系统上运行的QGIS版本名:
print QGis.QGIS_RELEASE_NAME, QGis.QGIS_VERSION_INT
例如,如果输出是楚吉亚克20400,则此值表示版本名和版本整数表示(版本2.4)。 这对于以编程方式创建可以在不同QGIS版本上运行的插件非常有用。以下代码片段有助于区分其中的代码:
if Qgis.QGIS_VERSION_INT < 20400: <here the code compatible with older version>
else:
<here the code compatible with version higher or equal to 2.4>
18.4.1. 在Python控制台中探索QGIS API¶
QGIS api可以在文档网页中浏览,但是如果您想直接在Python控制台中访问文档, 可以使用一些有用的Python命令。这个help命令显示web文档中可用的API信息的综合。 尝试使用以下命令编辑Python控制台:帮助(iface)
控制台将显示 QgisInterface 类,以及如何在Python语法中使用C++而不是C++语法的一个合成示例。 例如,如果要显示调用的结果类型 iface.activeLayer 类型:
help(iface.activeLayer)
将显示以下行:
Help on built-in function activeLayer: activeLayer(...) QgisInterface.activeLayer() -> QgsMapLayer
这表明活性层调用返回的数据是QgsMapLayer数据类型。
The Python dir() function gives you more detailed information, showing a list of all the methods belonging to a class.
试着打字董事(iface)并与之前的结果进行比较帮助(iface)命令。