Effacer les filtres
Effacer les filtres

Is it possible to detect when a gui moves to the background?

2 vues (au cours des 30 derniers jours)
Nick
Nick le 25 Juil 2013
Hello all,
I use one main-gui for entering parameters when a sub-gui does calculations in the background.
Is it possible to detect when a gui moves to the background? And if so how do I program my sub-gui to reload variables when this happens?
An user has the ability to click on the minimize button or just click on a different gui.
When the user reopens the sub-gui I need the value’s to reset.
SimpleExample
%InputsMaingui
Ingreadients.Suger =3;
Ingreadients.flour = 1;
Open subgui
%show output:
Ingreadients.Suger =3;
Ingreadients.flour = 1;
*click on main window in the back
%change value's
Ingreadients.Suger =50;
Ingreadients.flour = 4;
*click on subgui *this is when it goes wrong and the gui uses the wrong data.
%show output
Ingreadients.Suger =3;
Ingreadients.flour = 1;
this happens cause the users dont "restart" the sub-gui so I want the sub-gui to restart everytime it has been to the background.
Or a method that forces an user to close the sub-gui before he/she can click anywere else. Like when an error message pops up you have to pres "ok" before you can continue any other operation
Regards, Nick

Réponse acceptée

Jan
Jan le 25 Juil 2013
Modifié(e) : Jan le 26 Juil 2013
There is no documented method to achieve this, but an undocumented one:
FigH = gcf; drawnow;
jFrame = get(handle(FigH), 'JavaFrame');
% [EDITED]
try
jProx = jFrame.fFigureClient.getWindow;
catch
jProx = jFrame.fHG1Client.getWindow;
end
% [/EDITED]
set(jProx, 'WindowLostFocusCallback', {@figLostFocus, FigH});
function figLostFocus(jProx, EventData, FigH)
disp(clock) % Dummy for testing
Is is recommended to set this into a TRY/CATCH-Block and simply a useful error message, when it fails. The shown method might fail in future Matlab version as all undocumented features.
  3 commentaires
Jan
Jan le 26 Juil 2013
Please post which Matlab version you are using.
Do you mean:
figure('WindowStyle', 'modal')
See [EDITED] for a possibly working fallback. But remember that such errors are typical of undocumented methods.
Nick
Nick le 29 Juil 2013
I am using Matlab R2012b.
And indeed
figure('WindowStyle', 'modal')
is the code im looking for thanks allot!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Programming dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by