2012-04-14 5 views
1

In meinem GUI habe ich ein Menü mit Dingen wie Datei, Ansicht, bearbeiten, kompilieren Ergebnisse, Hilfe und etc .... mit dem Menü-Editor in GUI-Layout Editor erstellt. Ich beabsichtige, "den GUI-Inhalt gerade unter dem Menü zu aktualisieren" Für zB wenn ein Benutzer Klickansicht in meiner GUI würde er in der Lage sein, eine Ansicht simulierte Ergebnisseite zu sehen, anstelle der "Titelseite" wenn Leute zuerst mein öffnen gui.über GUI-Menü-Elemente

Können Sie mir beibringen, wie es geht? Unter dem Inhalt der Menüansicht Callback-Funktion, gebe ich eine Openfig ('new figure.fig'), so wenn ppl drücken Sie das Menü Ansicht, es öffnet sich eine weitere Figur des neuen Inhalts und Grafiken. Aber es würde eine andere Zahl öffnen, am Ende habe ich zwei Zahlen. Ich möchte den neuen Inhalt nur unter dem Menü aktualisieren, und nicht mit einer "neuen Seite". Kann Matlab das machen?

Antwort

0

Sie können nur eine Zahl verwenden, die ihm einen Handle-Namen geben und schalten Halt auf:

fig = figure; 
hold on; 

oder dann zwei Sätze von Achsen haben, wenn Sie durch eine definierte keine Achsen benötigen, nur zwei grafische Objekte Matrix, dh (Achsen)

screen_1 = axes; 
screen_2 = axes; 

OR (graphische Objekte)

screen_1 = plot(NaN,NaN); 
screen_2 = plot(NaN,NaN); 

dann können Sie ihre Reihenfolge ändern i n den Stapel:

uistack(screen_1,'bottom'); 

oder setzen sie (und alle ihre Kinder) unsichtbar:

set(screen_1,'Visible','off') 

auch vorsichtig sein: (von MATLAB)

Hinweis: In einer GUI, Achsenobjekte sind immer auf einer niedrigeren Ebene als uicontrol-Objekte. Sie können ein Achsenobjekt nicht über einem uicontrol-Objekt stapeln.