Why does findobj not work with annotation tags?
2 次查看(过去 30 天)
显示 更早的评论
When I create an annotation with a Tag and use findobj the result is empty.
an = annotation('textbox',[0 0 1 1],'string','Hallo','Tag','annotation');
findobj('Tag','annotation')
采纳的回答
per isakson
2013-3-24
编辑:per isakson
2013-3-24
findall returns the hg-handle. However, I find it strange that findobj fails, since HandleVisibility is on (by default). Matlab seems to behave this way and documentation is hard to read.
>> an = annotation('textbox',[0 0 1 1],'string','Hello','Tag','annotation');
>> h1 = findobj('Tag','annotation')
h1 =
Empty matrix: 0-by-1
>> h2 = findall(0,'Tag','annotation')
h2 =
178.0016
>> get( h2, 'HandleVis' )
ans =
on
>>
With R2012a,64bit,Win7
.
@Walter
Yes, an and h2 seems to be the same
....
>> [an,h2]
ans =
178.0024 178.0024
>> get( [an,h2], 'type' )
ans =
'hggroup'
'hggroup'
>> get( [an,h2], 'tag' )
ans =
'annotation'
'annotation'
>>
However, you spotted the cause
>> axh = get( h2, 'parent' )
axh =
173.0024
>> get( axh, 'HandleVis' )
ans =
off
annotation returns the handle of a hggroup, which is the child of an axes the HandleVisibility of which is off.
2 个评论
Walter Roberson
2013-3-24
but is h2 the same as "an" ?
If the object that got tagged got created as a child of something with an invisible handle, what you describe would be the result.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Object Programming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!