qgis 2.12 - 通过python删除所有TextAnnotations

时间:2016-01-06 19:51:55

标签: qgis

我的地图上有很多文字注释。我想从python控制台中删除它们。

我试过了:

from qgis.gui import *
from PyQt4.QtGui import *
from PyQt4.QtCore import * 

items = qgis.utils.iface.mapCanvas().items()
for item in items:
    print type(item).__name__
    if (isinstance(item, QgsAnnotationItem)):
        print "Got annotation"

它获取图形对象,但从未找到注释项。我怎么知道item是否是注释?那我怎么把它从地图中删除呢?

1 个答案:

答案 0 :(得分:0)

实际上它会获得TextAnnotations,但是你会以QGraphicsItem的形式获得它们。

但是你的项目有一个方法数据,而且你正在寻找item.data(0)==' AnnotationItem'。

所以:

from qgis.gui import *
from PyQt4.QtGui import *
from PyQt4.QtCore import * 

items = qgis.utils.iface.mapCanvas().items()
for item in items:
    print type(item).__name__
    if item.data(0) == 'AnnotationItem':
        print "Got annotation"