如何关闭GUI中的所有图形而不关闭GUI本身



我使用Matlab指南制作用户界面。在这个界面中,我运行.m文件,绘制各种图形。分析之后,我想在不关闭GUI的情况下关闭图形。如果我使用关闭所有;关闭所有图形,包括GUI本身。但是,如果我使用close; GUI关闭而不关闭图形。我该如何解决这个问题?

假设您的GUI中没有任何其他axes对象,下面将工作:

%// find all handles of axes (graphs)
axh = findall(groot,'type','axes')
%// get handles of parent figures containing graphs
fxh = get(axh,'parent')
%// close figures containg axes
close(fxh{:})

它将删除包含axes对象的所有子图。然而,我仍然坚持我的建议:为所有图形窗口分配独特的句柄,并显式地关闭它们。

这个来自MATLAB Central的答案似乎是最有希望的:

fh=findall(0,'Type','Figure')

获取所有打开图形的句柄。您可以使用标签或将您的GUI与其他图形区分开来的东西。然后关闭所有其他的通过传递句柄来关闭。

正如Hoki在评论中建议的那样,你可以这样写:

close(setxor(fh,the‌​MainGuiHandle))

相关内容

  • 没有找到相关文章

最新更新