我的地图上有很多文字注释。我想从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是否是注释?那我怎么把它从地图中删除呢?
答案 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"