Ich bastel gerade an meinem GUI und bin auf ein Problem gestoßen:
Ich benutze GUIDE, kann damit aber kein uimenu erstellen, also muss ich es "händisch" einfügen.
Zur Zeit hab ich den Code in die OpeningFunction meines GUI geschrieben, aber da taucht ein Problem auf. Jedes mal, wenn man
das Programm zweimal startet, ohne den GUI des ersten Starts zu schließen (Ich muss leider davon ausgehen, dass spätere Nutzer
genau das machen...), wird ein neues Menü erzeugt, sodass man dann zwei hat.
Und das will ich natürlich verhindern. Nur wie?
Hier mein Code:
Code:
function spidertool_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to spidertool (see VARARGIN)
% Choose default command line output for spidertool
handles.output = hObject;
f = uimenu('Label','Workspace');
uimenu(f,'Label','Help', 'Callback', @helpfunc);
uimenu(f,'Label','Contact', 'Callback', @contactfunc);
uimenu(f,'Label','Quit','Callback','exit',...
'Separator','on','Accelerator','Q');
kurze Zwischenfrage zum allgemeinen Verständnis: Warum kannst Du mit GUIDE kein uimenu erzeugen? Ich dachte immer, mit "Tools --> Menu Editor" könne man genau dies tun...
Danke für den Vorschlag, aber leider ändert das gar nichts. Alles wie gehabt. Ich glaub, das Problem ist halt, dass es in der OpeningFunction steht und deshalb immer neu erzeugt wird.
@ tompie:
Ich wusste nicht, dass das geht, danke für den Tipp. Ich habs gleich ausprobiert und jetzt klappts!
Schön dass es jetzt funktioniert.
Ich habe offenbar Dein Problem nicht verstanden. Natürlich wird dann jedesmal ein neues Menü erzeugt - und zwar für jedes neu geöffnete GUI-Fenster. Rufst Du die OpeningFcn mehrfach für ein Fenster auf?!
ja, genau das kann später vokommen. Ich meine, dass mein Program erneut aufgerufen wird, ohne dass der GUI vorher geschlossen wurde.
Deshalb war es entsprechend unklug, das Ganze in der OpeningFnc zu implementieren. Aber da ich ja jetzt weiß, dass es auch über GUIDE machbar ist, kann ich das umgehen.
Liebe Grüße,
louja
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.