Was alles soweit auch funktioniert, nur leider wenn ich mit uibuttonGroup arbeite funktioniert es nicht. Hat jemand vielleicht einen Tip, hat es was mit der Objekthierarchie zutun?
Desweiteren haben ich ein Problem beim übergeben meiner handlers einer GUI, was ich im normal so realisiere:
würde mich interessieren ob es es eine elegantere Lösung gibt, ohne dass GUI_1 geladen und geschlossen werden muss, da dies Zeit kostet und man es auch sieht?
Das gleiche Problem habe ich auch wenn ich wenn ich in einer weiteren GUI oder funktion werte über:
ausgebe, jedes mal poppt die GUI auf und ich muss sie wieder schließen.
Danke für eure Hilfe!
Viele Grüße
jofa
fajo2
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.02.2011, 16:57
Titel:
Hallo zusammen,
habe das Problem gefunden, möchte es schreiben, falls es jemanden interessiert.
Das Problem liegt nicht in den uibuttongroup sondern darin, dass ich bei jedem Aufruf der GUI eine Abfrage stelle was in anderen GUIs angeklickt wurde und mit den informationen Objekte ausbelnde.
"Meine GUIs ergeben so eine Art (Wizard)"
Fehler:
Ich rufe beim setzen der Variablen über:
die komplette funktion auf und somit meine erste Abfrage, dass sorgte für ein durcheinander.
Habe nun die Abfrage mit einem Button verbunden und dort die ganzen setappdata reingepackt.
%==========================
Zu dem zweiten Problem, dass habe ich noch nicht im Griff:
Beim Aufrufen der setappdata() und getappdata() erscheint jedesmal das figure, kann man das anders lösen?
Danke und Gruß jofa
fajo3
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 18.02.2011, 10:25
Titel:
Hallo zusammen,
möchte probieren die Frage mal etwas anders zu stellen.
bei mehreren GUIs also z.B. GUI_1, GUI_2 kann ich doch alle handles an anderer Stelle (z.B. zweite GUI_2) abfragen:
und so die Werte, Name, etc jedes childrenObjektes auslesen
Code:
% wir befinden uns in GUI_2 % Übergabe aller handles um an die Children Objekte zu kommen
hGUI_1 = get(GUI_1);
set(GUI_1,'Visible','off');
% zum erfragen des Status einer checkbox in einer anderen GUI get(hGUI_1.Children(1),'Value');
% oder eine andere Variante von GUI_1 aus setappdata(GUI_1,'statusCb_1',get(handles.Cb_1,'Value');
% Abfrage des Status in GUI_2
statusCb1 = getappdata(GUI_1,'statusCb_1);
set(GUI_1,'Visible','off');
Das ganze funktioniert, was mich nur stört ist das beim erstellen von hGUI_1 und statusCb_! poppt GUI_1 immer wieder auf. Gibt es eine weitere Möglichkeit die Werte der Children Objekte an anderer Stelle zu erfragen.
ich kann nicht nachvollziehen,
warum soll eine GUI bei SETAPPDATA/GETAPPDATA aufpoppen?
Verwendest du vielleicht AXES/FIGURE?
Vielleicht mehr Code posten, oder lauffähigen Beispiel basteln, mit dem das nachvollzogen werden kann?
fajo
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 18.02.2011, 11:10
Titel:
Hallo Denny,
vielen Dank für Deine Antwort, probiere es nochmal mit Worten, ansonsten baue ich ein Beispiel.
Der Grund warum es aufpoppt ist der, dass ich die beim wechseln der GUIs immer eine schließe.
Also über zwei checkboxButton gibt es die Möglichkeit die GUI aufzurufen. Ganz klassisch wie ein wizzard (z.B. Softwareinstallation, bei next kommt ein neues Fenster und das aktuelle geht zu)
Wenn ich dann in dem neuen Fenster z.B. GUI_2) getappdata(GUI_1) aufrufe poppt diese auf
Code:
% forward_checkbox von GUI_1 zu GUI_2 function forward_pushbutton_Callback(hObject, eventdata, handles) setappdata(GUI_1,'statusCb1', get(handles.Cb1,'Value'));
set(GUI_1,'Visible','off');
set(GUI_2,'Visible','on');
%===============================
% in GUI_2 getappdata(GUI_1,'statusCb1');
% hier poppt GUI_1 auf und ich muss sie schließen set(GUI_1,'Visible','off);
kann es sein, dass du mit GUI_1,GUI_2 dein M-File Namen meinst? Wenn ja, dann ist es kein Wunder, dass es wieder auf dem Bildschirm erscheint, denn du rufst erneut die Funktion auf...
Ansonsten kann ich mir noch keinen Rheim daraus machen warum die Fenster bei dir immer Sichtbar werden.
Besser wäre deinen GUIS das handle der anderen GUI zu übergeben oder beide GUIhandles z.B. mit setappdata(0,'Gui1',DeineGUI) zu speichern und in allen Funktionen mittels d = getappdata(0,'Gui1') wieder zu laden.
MfG Marco
fajo
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 21.02.2011, 10:11
Titel:
Hallo Marco,
perfekt!
Vielen Dank für Deinen Hinweis, genau das war das Problem, habe es nicht verstanden die handles zu übergeben. Die von Dir genannte Syntax setappdata(0,'NameGUI',handles) funktioniert einwandfrei.
Viele Grüße
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.