qgis 2.12 - 通过python删除所有TextAnnotations
问题描述:
我有很多textannotations的地图。我想从python控制台中删除它们。qgis 2.12 - 通过python删除所有TextAnnotations
我想:
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。
但是你有你的物品methode数据,你正在寻找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"