15.3.4 搜索属性

 
h = findobj ()
h = findobj (prop_name, prop_value, …)
h = findobj (prop_name, prop_value, "-logical_op", prop_name, prop_value)
h = findobj ("-property", prop_name)
h = findobj ("-regexp", prop_name, pattern)
h = findobj (hlist, …)
h = findobj (hlist, "flat", …)
h = findobj (hlist, "-depth", d, …)

查找具有指定属性的图形对象。

当不带参数调用时,返回从根对象(0)开始的所有图形对象,包括其所有后代。

缩小结果范围的最简单形式是

findobj (prop_name, prop_value)

这将返回所有具有名为 prop_name 且其值为 prop_value 的属性的对象的句柄。 如果指定了多个属性/值对,则仅返回满足所有条件(相当于 -and)的对象。

可以通过将句柄或句柄集 hlist 作为第一个参数传递,将搜索限制在特定的对象集及其后代。

可以使用 "-depth" 参数限制搜索的对象层次深度。 仅搜索三代子对象的示例如下:

findobj (hlist, "-depth", 3, prop_name, prop_value)

将深度 d 指定为 0 会将搜索限制在 hlist 中传递的对象集。 深度 0 也等同于 "flat" 参数。 默认深度值为 Inf,包含所有后代。

可以在 prop_nameprop_value 对之间使用指定的逻辑运算符。 支持的逻辑运算符有: "-and""-or""-xor""-not"。 查找所有图形窗口和坐标轴对象的示例代码如下:

findobj ("type", "figure", "-or", "type", "axes")

还可以通过将正则表达式与属性值进行匹配来查找对象,返回与 regexp (prop_value, pattern) 匹配的属性值。

最后,可以使用 "-property" 选项查找具有某个属性名称的对象。 例如,查找具有 "meshstyle" 属性的对象的代码如下:

findobj ("-property", "meshstyle")

实现说明:搜索仅包含具有可见句柄的对象 (HandleVisibility = "on")。 请参见 findall,以 搜索包括隐藏对象在内的所有对象。

另请参阅: findallallchildgetset

 
h = findall ()
h = findall (prop_name, prop_value, …)
h = findall (prop_name, prop_value, "-logical_op", prop_name, prop_value)
h = findall ("-property", prop_name)
h = findall ("-regexp", prop_name, pattern)
h = findall (hlist, …)
h = findall (hlist, "flat", …)
h = findall (hlist, "-depth", d, …)

查找图形对象,包括隐藏对象,具有指定属性。

返回值 h 是找到的图形对象句柄的列表。

findall 执行与 findobj 相同的搜索,但它 包括隐藏对象(HandleVisibility = "off")。 有关完整 文档,请参见 findobj

另请参阅: findobjallchildgetset


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2