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

setappdata.... von Kindes Kindern :-)

 

fajo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2011, 15:02     Titel: setappdata.... von Kindes Kindern :-)
  Antworten mit Zitat      
Hallo zusammen,


Wenn ich den Wert einer Checkbox erfragen will und für andere GUI's zugänglich machen will mache ich es über:
Code:

setappdata(h,'checkboxStatus',get(h.checkbox,'Value'))
 

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:
Code:

hGUI_1 = get(GUI_1_Name);
 

soweit funktioniert das auch, nur beim aufrufen des Befehls wird die GUI_1 immer erscheinen und ich muss es mit folgendem Code erst wieder ausblenden:
Code:

set(GUI_1_Name, 'Visible', 'off')
 


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:
Code:

getappdata(GUI_1_Name,'checkboxStatus')
 

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: ---
     Beitrag Verfasst am: 17.02.2011, 16:57     Titel:
  Antworten mit Zitat      
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:
Code:

setappdata(GUI_Name,'NewValue',value);
 

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

%==========================

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: ---
     Beitrag Verfasst am: 18.02.2011, 10:25     Titel:
  Antworten mit Zitat      
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.

Danke für eure Hilfe!
Gruß jofa
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 18.02.2011, 10:45     Titel:
  Antworten mit Zitat      
Hallo,

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?
Private Nachricht senden Benutzer-Profile anzeigen
 
fajo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.02.2011, 11:10     Titel:
  Antworten mit Zitat      
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 Confused
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);
 



Hoffe konnte das Problem verdeutlichen!

Danke nochmals
Gruß
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 18.02.2011, 16:13     Titel:
  Antworten mit Zitat      
Hallo fajo,

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
Private Nachricht senden Benutzer-Profile anzeigen
 
fajo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.02.2011, 10:11     Titel:
  Antworten mit Zitat      
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
 
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.