Verfasst am: 22.09.2015, 09:34
Titel: Funktionspfad im Callback
Moin Moin,
ich arbeite mich gerade in die GUI Programmierung ohne Guide ein und habe da gleich mal zwei Fragen, die ich mithilfe von google leider nicht gelöst bekommen habe.
Ich definiere mir ein Pushbutton:
bei dessen Betätigung die die Funktion 'my_fun' ausgeführt wird. Nun würde ich diese Funktion gerne in einen Unterordner verschieben, weiß aber nicht wie. Kann mir da eventuell jemand helfen?
Meine zweite Frage wäre: Ist es bei GUIs möglich, dass ich mehrere Funktionen in ein m-File schreibe? Also z.B. die Programmierung von 2 Buttons? Falls ja, wie würde ich die dann aufrufen?
Verfasst am: 22.09.2015, 11:40
Titel: Re: Funktionspfad im Callback
Hallo GUINewbie_2,
Zitat:
Nun würde ich diese Funktion gerne in einen Unterordner verschieben, weiß aber nicht wie.
Nun, erstelle im Datei-Browser (Unter Windows dem Explorer) einen Unterordner und schiebe die Datei mit der Maus dort hinein. Das kommt mir allerdings trivial vor. Darum verstehe ich Deine Frage vielleicht nicht.
Geht es darum, wie Matlab diese Funktion dann auch findet? Dazu muss der neu erstellte Order in den
path
eingefügt werden. Siehe
addpath
und
pathtool
.
bei dessen Betätigung die die Funktion 'my_fun' ausgeführt wird. Nun würde ich diese Funktion gerne in einen Unterordner verschieben, weiß aber nicht wie. Kann mir da eventuell jemand helfen?
Zitat:
Meine zweite Frage wäre: Ist es bei GUIs möglich, dass ich mehrere Funktionen in ein m-File schreibe?
Man kann bei GUIs genau wie bei allen anderen Funktionen auch, in ein M-File eine Hauptfunktion schreiben und mehrere Unterfunktionen. Die Hauptfunktion hat dabei immer den selben Namen wie das File. Entweder hängst Du also alle Callback-Funktionen an das File an, dass die Haupt-Funktion erhält. Oder Du verwendest einen "Wrapper": Der Callback für 2 verschiedene Buttons enthält dann einen Parameter, der festlegt, welche Funktion aufgerufen werden soll:
Code:
function GUI
figure;
button1 = uicontrol('style','pushbutton',...
'string', 'Button1',...
'units', 'normalized',...
'position',[0.300.40.2],...
'callback',{@my_fun, a, b, 'button1'});
button2 = uicontrol('style','pushbutton',...
'string', 'Button1',...
'units', 'normalized',...
'position',[0.30.30.40.2],...
'callback',{@my_fun, a, b, 'button2'});
Welche der beiden Methoden praktischer ist, hängt vom einzelnen Problem ab, z.B. auch, ob das Programm in Zukunft of erweitert wird, eventuell von verschiedenen Programmierern, usw.
Gruß, Jan
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.