2017-05-31 2 views
2

Wie kann ich den Fokus auf eine uifigure einstellen, nachdem der Fokus auf eine andere Figur umgeschaltet wurde?Fokus auf ein Uifiguren-Fenster setzen

Für uicontrol ist es möglich, den Fokus auf eines der untergeordneten Elemente zu setzen. Zum Beispiel:

% create a new uicontrol text label 
h = uicontrol('style','text','string','This is my figure'); 
% create a figure to switch the focus 
figure; 
% switch back 
uicontrol(h) 

jedoch für uifigure, schafft eine neue uifigure nur einen ähnlichen Code übernehmen.

Einige Code für Sie, um zu versuchen:

% create a new uifigure 
h = uifigure('Name','This is my figure'); 
% create a new uilabel as a child of uifigure 
lh = uilabel(h) 
% create a figure to switch the focus 
figure; 
% this creates a new uifigure then switch back 
uifigure(h) 
% this creates an error as the first input argument must be a valid parent for uilabel 
uilabel(lh) 

Jede Idee, Einsicht oder Beitrag geschätzt wird.

Beachten Sie, dass Ihre Matlab-Version mindestens 2016a sein sollte, da dies uifigure ist.

Antwort

6

Dies ist noch ein weiteres Opfer der bizarren Strategie von The MathWorks, ein neues UI-Framework zu veröffentlichen, bevor es tatsächlich Funktionen hat. Zugegeben, das neue Framework zeigt eine Menge Versprechen, aber es ist immer noch lags far behind das ältere Grafiksystem in Bezug auf die Funktionalität.

Rant beiseite, es gibt eine schnelle Problemumgehung, die in R2017a gut funktioniert: Schalten Sie die Sichtbarkeit der uifigure, die es in den Vordergrund bringt. Hier ist ein einfaches Beispiel:

function uifigurepop(uifigurehandle) 
drawnow; 
uifigurehandle.Visible = 'off'; 
uifigurehandle.Visible = 'on'; 
end 

Welche, wenn wir dies in den Beispielcode bringen:

% create a new uifigure 
h = uifigure('Name','This is my figure'); 
% create a new uilabel as a child of uifigure 
lh = uilabel(h) 
% create a figure to switch the focus 
figure; 
% this creates a new uifigure then switch back 
uifigure() 
uifigurepop(h); 

Ihre Figur wird jetzt gemacht oberste auf dem Bildschirm.

Verwandte Themen