findall 与 findobj 类似,不同的是即使其 HandleVisibility 设置为 ‘off‘,它也查找对象。 【GUI的‘handlevisibility‘属性】 handlevisibility:用于设置控件的句柄可访问性。可以取三个值: on :对于所有函数均可见,该控件的句柄,不仅gui的回调函数可以认,非gui(matlab非gui模块的函数、用户自动函数)都可以认 off:该控件不可访问 callback:该控件只有gui的回调函数可以访问
例子:
例子: plot([0:10]); % 绘制一幅图 title(‘示例‘); % 增加text对象,试试用添加子对象的方法,进行添加text对象 allchild(gcf) %gcf是当前图窗的句柄。获取当前窗口的所有子对象,而不是属性 get(ans(10)) %查看allchild(gcf) 命令运行结果ans中的第10个子对象的所有属性。 %get(0):获得句柄值为0的对象的属性,即显示器对象属性 %从get命令行输出结果ans里找到“Type”,type的属性值就是该子对象的类型 set(ans(10), ‘FontSize‘, 20, ‘FontWeight‘, ‘bold‘);%找到对应的属性,就可以按照自己的要求设置了 %找到第10个子对象,根据要求,设置图像。 %fontsize是字体大小,设置为20 %FontWeight是字宽,bold指的是加宽 %这里的ans(10),可以换成其他的指定具体子函数的字段。 h=findobj(allchild(gca), ‘String‘, ‘示例‘); % 获得静态文本“示例”的句柄并进行设置,这里有问题,搜不到。 %上面的那个命令报错的原因是: % 1.text对象属于figure的子对象,不属于axes的子对象,所以这里要用gcf. % 2.text的HandleVisibility属性为‘off‘,findobj搜不到,所以只能使用findall, % 3.或是把它的HandleVisibility属性改为‘on‘,再用findobj,也能搜到 %所以命令更改为: h=findall(allchild(gcf), ‘String‘, ‘示例‘); %就可以搜到. %allchild(gca)是获取 % 属性为“String”。text是坐标轴的子对象 %属性值为“实例” set(h, ‘FontSize‘, 20, ‘FontWeight‘, ‘bold‘);
MATLAB-《10分钟学习GUI系列》-【第一课】- 对象的基础概念及操作
原文:https://www.cnblogs.com/dachaozi/p/13777432.html