2016-01-06 126 views
0

我有很多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" 

它得到的图形对象,但从来没有发现一个注释项目。如果项目是注释,我怎么知道?然后,我将如何从地图中删除它?

回答

0

事实上,它会得到你的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"