Main Content

guihandles

检索图窗的子对象

说明

注意

推荐使用 findobjfindall 定位图窗的子对象,而不是使用 guihandles。使用推荐的函数,您就能够控制在使用特定属性值或正则表达式情况下返回的对象类型。有关检索图形对象的子对象的详细信息,请参阅查找对象

s = guihandles(obj) 返回具有非空 Tag 属性的图窗的子对象。

  • 如果 objFigure 对象,则 guihandles 返回指定图窗的子对象。

  • 如果 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 属性的值匹配。

s = guihandles(f)
s = struct with fields:
    button: [1×1 Button]
     panel: [1×1 Panel]

使用结构体字段名称来访问 UI 组件和特定的组件属性。例如,访问第一个按钮上显示的文本。

s.button.Text
ans = 'One'

您还可以将 Figure 对象的子组件传递给 guihandles,以检索包含该组件的图窗的子对象。例如,将 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" 也是如此。有关隐藏对象的详细信息,请参阅防止对图窗和坐标区访问

版本历史记录

在 R2006a 之前推出

另请参阅

函数