我在ArcMap 10.2中创建一个加载项按钮,它将浮动的连续动态文本框添加到地图布局中。我的剧本很难,我希望有人会有答案。
这是我的代码:
def onClick(self):
mxd = arcpy.mapping.MapDocument("CURRENT")
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " ")[0]:
elmWidth = 4.0
x = 100
elm.text = 'User: <dyn type="user"/> Date: <dyn type="date" format="short"/> <Document Path: dyn type="document" property="path"/>'
elm.fontSize = x
while elm.elementWidth > float(elmWidth):
elm.fontSize = x
x = x-1
arcpy.RefreshActiveView()
del mxd
我收到UnboundLocalError的错误:本地变量&#39; mxd&#39;在赋值和IndexError之前引用:列表索引超出范围 我被困住了,需要帮助。
谢谢。
答案 0 :(得分:0)
首先,您无法向mxd布局添加新文本元素,只能修改或复制现有文本元素。 其次,写下:
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " "):
...
或
elm = arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " ")[0]
这假设你的mxd中有一个名为“”的文本元素。