Check if GUI is open
Afficher commentaires plus anciens
Hi everybody
I believe the answer to this question already exists several times online, but everything I tried failed.
I got in a GUI-figure the option to open an other GUI-figure. In the second GUI I got plots and the first one can update these plots. Therefore its interesting to know if the second GUI is already/still open when I activate the update.
I tried:
~isempty(findobj('Tag','figure2'))
~isempty(findobj('Tag','axesInFigure2'))
~isempty(get(groot,'figure2'))
isgraphics(h,'figure2')
but I get the same result no matter if figure2 is open or not.
Is there an other way to get this information? I think of eventlisteners: figurehasbeenopened, figurehasbeenclosed
Thanks for help.
Réponse acceptée
Plus de réponses (4)
Benjamin Avants
le 17 Oct 2017
I know this question is old, but GUIDE created figures don't show up as results from findobj.
Instead, use
figure2handle = findall(0,'Tag','figure2');
if ~isempty(figure2handle)
% figure exists
end
Vahab Youssofzadeh
le 2 Juin 2017
Modifié(e) : Vahab Youssofzadeh
le 2 Juin 2017
Here's another solution:
h = get(0, 'Children');
isempty(findobj(h,'name','NAME OF THE GUI'));
% isempty (findobj (h,'tag','NAME OF THE GUI'));
Nepenthes
le 17 Juil 2018
0 votes
This is a little late, but I chanced upon this solution when tackling a similar problem. H.isvalid or isvalid(H) should work. H can be a single handle, or a vector of handles. K>> H = figure; K>> G = plot(rand(5)); K>> delete(G(3:4)); K>> G.isvalid ans = 1 1 0 0 1 K>> H.isvalid ans = 1 K>> delete(H) K>> H.isvalid ans = 0
Kristoffer Walker
le 21 Oct 2020
0 votes
None of the above seems to work for me when I am trying to detect if a GUI created from AppDesigner is open. Does anyone know how to do this with AppDesigner GUI's?
Best regards,
Kris
Catégories
En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!