WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

uimenu erzeugen

 

louja
Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 20.07.2011, 18:29     Titel: uimenu erzeugen
  Antworten mit Zitat      
Hallo zusammen!

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');

 

Muss ich den Code woanders einfügen, oder was soll ich machen?
Für ein wenig Hilfe wär ich echt dankbar!

Liebe Grüße,
louja
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 20.07.2011, 23:31     Titel: Re: uimenu erzeugen
  Antworten mit Zitat      
Hallo louja,

Ich vermute, Du musst einfach nur den Handle der Figure angeben:
Code:
handles.output = hObject;
FigH = ancestor(hObject, 'figure');
f = uimenu(FigH, 'Label','Workspace');

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 21.07.2011, 09:14     Titel:
  Antworten mit Zitat      
Hallo,

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...

Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
louja
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 21.07.2011, 09:51     Titel:
  Antworten mit Zitat      
Hallo ihr zwei!

@ Jan:

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!

Also nochmal Danke für die Tipps!

Liebe Grüße,
louja
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.07.2011, 11:08     Titel:
  Antworten mit Zitat      
Hallo louja,

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?!

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
louja
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 22.07.2011, 15:53     Titel:
  Antworten mit Zitat      
Hallo Jan,

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. Smile

Liebe Grüße,
louja
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.