帮助中心帮助中心
检索图窗的子对象
s = guihandles(obj)
s = guihandles
注意
推荐使用 findobj 或 findall 定位图窗的子对象,而不是使用 guihandles。使用推荐的函数,您就能够控制在使用特定属性值或正则表达式情况下返回的对象类型。有关检索图形对象的子对象的详细信息,请参阅查找对象。
findobj
findall
guihandles
s = guihandles(obj) 返回具有非空 Tag 属性的图窗的子对象。
s
obj
Tag
如果 obj 是 Figure 对象,则 guihandles 返回指定图窗的子对象。
Figure
如果 obj 是图窗中的图形对象,则 guihandles 返回包含 obj 的图窗的子对象。
示例
s = guihandles 返回当前图窗的具有非空 Tag 属性的所有子对象。如果不存在图窗,MATLAB® 会创建一个新图窗,并将其设置为当前图窗。
全部折叠
首先,创建一个 UI 图窗并向其中添加 UI 组件。
f = uifigure; p = uipanel(f,"Position",[80 10 450 400]); b1 = uibutton(f,"Text","One","Position",[10 40 60 30]); b2 = uibutton(f,"Text","Two","Position",[10 10 60 30]); b3 = uibutton(p,"Text","Three","Position",[10 10 60 30]);
对于某些 UI 组件,使用 Tag 属性向对象添加标记。
p.Tag = "panel"; b1.Tag = "button";
使用 guihandles 函数查询该 UI 图窗中的对象。由于大多数 UI 组件在默认情况下 Tag 属性为空,只有面板 p 和按钮 b1 包含在输出结构体中。结构体字段名称与子对象的 Tag 属性的值匹配。
p
b1
s = guihandles(f)
s = struct with fields: button: [1×1 Button] panel: [1×1 Panel]
使用结构体字段名称来访问 UI 组件和特定的组件属性。例如,访问第一个按钮上显示的文本。
s.button.Text
ans = 'One'
您还可以将 Figure 对象的子组件传递给 guihandles,以检索包含该组件的图窗的子对象。例如,将 Panel 对象传递给函数会返回相同的结构体。
Panel
s2 = guihandles(p)
s2 = struct with fields: button: [1×1 Button] panel: [1×1 Panel]
图形对象。您可以指定图窗的 Figure 对象或任何子对象。
图窗中具有非空 Tag 属性的对象,以结构体形式返回。结构体中的字段名称与图窗中放置的 UI 组件或图形对象的 Tag 属性的值匹配。guihandles 不返回具有不是有效变量名称的 Tag 属性值的对象。
如果只有一个对象具有给定的 Tag 属性,则与该标记相关联的字段的值包含图形对象。
如果多个对象具有相同的 Tag 属性,则与该标记相关联的字段的值包含一个由图形对象组成的向量。
guihandles 会返回对象,即使其 HandleVisibility 属性设置为 "off" 也是如此。有关隐藏对象的详细信息,请参阅防止对图窗和坐标区访问。
HandleVisibility
"off"
在 R2006a 之前推出
guidata
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office