本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

close

删除指定图窗

语法

close
close(h)
close name
close all
close all hidden
close all force
status = close(...)

说明

close 删除当前图窗或指定图窗。它可以选择返回关闭操作的状态。

close 删除当前图窗(等同于 close(gcf))。

close(h) 删除由 h 标识的图窗。如果 h 是数组,close 会删除 h 标识的所有图窗。h 还可以是图窗 Number

close name 删除具有指定名称的图窗。

close all 删除其句柄未隐藏的所有图窗。

close all hidden 删除所有图窗,包含句柄隐藏的图窗。

close all force 删除所有图窗,包含 CloseRequestFcn 已更改为不关闭其窗口的 GUI。

如果指定窗口已被删除,status = close(...) 返回 1,否则返回 0

算法

close 函数的工作方式是使用以下语句来计算指定图窗的 CloseRequestFcn 属性

eval(get(h,'CloseRequestFcn'))

默认 CloseRequestFcn (closereq) 删除使用 delete(get(groot,'CurrentFigure')) 的当前图窗。如果您指定图窗句柄数组,close 会依次执行每个图窗的 CloseRequestFcn。如果发生终止执行 CloseRequestFcn 的错误,则不会删除该图窗。请注意,使用计算机的窗口管理器(即关闭菜单项)还将调用图窗的 CloseRequestFcn

如果图窗的句柄被隐藏(即图窗的 HandleVisibility 属性设置为 callbackoff,并且根 ShowHiddenHandles 属性设置为 on),尝试使用 all 选项访问图窗时,您必须指定 hidden 选项。

要无条件地删除所有图窗,请使用以下语句

set(groot,'ShowHiddenHandles','on')
c = get(groot,'Children');
delete(c)

发出 close 函数后,图窗 CloseRequestFcn 允许您延迟或终止图窗的关闭操作。例如,可以显示一个对话框以查看用户是否真正希望删除图窗或在关闭前保存并清理。

CloseRequestFcn 回调编码时,确保它不会调用 close,因为这会设置递归,从而引发 MATLAB® 警告。回调应通过 delete 破坏图窗。delete 函数不执行图窗的 CloseRequestFcn;它仅删除指定图窗。

另请参阅

| |

在 R2006a 之前推出