qgis 2.12 - 通过 python 删除所有 TextAnnotations

qgis 2.12 - Remove all TextAnnotations via python

我有带有很多文本注释的地图。我想从 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"

它获取图形对象,但从未找到注释项。我怎么知道项目是否是注释?然后我如何将其从地图中删除?

事实上,它获取您的 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"