GUI, selecting a figure to close, if it exists?
古いコメントを表示
I have a GUI that sometime at the end displays a new figure (handles.hf5). I create the new figure using:
handles.hf5=figure('position',[xpos, ypos, sz(2), sz(1)]);
When I run my GUI again, if this figure exists, I want to be able to close it. (sometimes I run the GUI with other options and no additional figure is required and so handles.hf5 does not exist.
I have tried the following but none work:
close all
allPlots = findall(0, 'Type', 'figure', 'FileName', [])
delete(allPlots);
and
if ishandle(handles.hf5)
close(handles.hf5)
end
採用された回答
その他の回答 (1 件)
Walter Roberson
2016 年 1 月 11 日
In earlier releases, using ishandle() should work provided that the variable exists and has not been set to 0
if isfield(handles, 'hf5') && handles.hf5 ~= 0 && ishandle(handles.hf5)
delete(handles.hf5);
end
Note: close() can be intercepted by the figure's CloseRequestFcn callback, but delete() cannot be intercepted.
4 件のコメント
Jason
2016 年 1 月 11 日
Jason
2016 年 1 月 11 日
Walter Roberson
2016 年 1 月 11 日
You are using R2014b or later, so you should compare to groot instead of to 0, and you should perhaps check ~isempty() as well.
I have not gone through your code otherwise; it is after 5am here and I am going to head to bed.
Jason
2016 年 1 月 12 日
カテゴリ
ヘルプ センター および File Exchange で Creating, Deleting, and Querying Graphics Objects についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!