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

OOP und GUI

 

Dr.Demolition
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 13.07.10
Wohnort: nähe Wetzlar
Version: 7.10.0.499, 32bit
     Beitrag Verfasst am: 16.07.2010, 13:18     Titel: OOP und GUI
  Antworten mit Zitat      
Hallo,

gibt es irgendwelche Dokumentationen darüber, wie ich OOP in Matlab mit einer GUI steuern kann?

Ich habe ein Objekt mit Methoden zum Berechnen bestimmter Ergebnisse, dessen Attribute ich gerne über verschiedene Buttons bzw. Textboxen steuern würde.

Wie muss ich hier generell vorgehen?

Meine Idee ist bis jetzt, beim Starten des GUI das Objekt in handles zu erstellen, also: handles.xy=xyz() Gibt es da eine elegantere Lösung?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.07.2010, 19:16     Titel:
  Antworten mit Zitat      
Hallo,

grundsätzlich ist die Kombination von OOP und GUIs kein Problem, solange man beides für sich genommen versteht.
Die Erweiterung der handles-Struktur ist eine Möglichkeit. Eine sauberere Variante ist m.M. nach das Arbeiten mit setappdata / getappdata.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Dr.Demolition
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 13.07.10
Wohnort: nähe Wetzlar
Version: 7.10.0.499, 32bit
     Beitrag Verfasst am: 16.07.2010, 20:06     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank schon mal für die Anwort und den Tip. Hatte es mal mit set-/getappdata versucht, aber bin nicht richtig damit zurecht gekommen. Denke ich werde mir es noch mal anschauen, wenn dies der sauberere Weg ist. Aber bin schon mal froh, das OOP mit GUI in Matlab generell kein Problem ist und ich hier nicht auf dem Holzweg bin. Wäre Schade um die vielen investierten Stunden ;=)

PS: Hast du vielleicht einen Tip, was man sich mal anschauen könnte in Bezug auf OOP In Matlab? In Google findet man leider nur auf den gefühlten ersten 100 Seiten meistens dieselben Ergebnisse, nur auf anderen Seiten referenziert.

Grüße,
Marcel
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.07.2010, 08:59     Titel:
  Antworten mit Zitat      
Hallo,

leider kann ich da auch nicht weiterhelfen.
In jedem Fall solltest du darauf achten, dass Materialien, die du dir anschaust, nach April 2008 erstellt wurden. Da hat sich nämlich die OOP in MATLAB grundlegend geändert (d.h. die alte Notation ist wohl noch möglich, aber nicht mehr empfohlen).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Dr.Demolition
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 13.07.10
Wohnort: nähe Wetzlar
Version: 7.10.0.499, 32bit
     Beitrag Verfasst am: 17.07.2010, 15:58     Titel:
  Antworten mit Zitat      
Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen
 
tuelee
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 13.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2010, 15:17     Titel:
  Antworten mit Zitat      
hallo,

ich habe das gleiche problem. ich habe eine gui geschrieben und habe mir überlegt, dass ich meine eingangswerte und die zu errechnenden werte als objekte laufen lasse. ich verstehe nun nicht so ganz, was mir setappdata / getappdata nutzen soll. für eine kleine erläuterung wäre ich sehr dankbar.

gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.11.2010, 19:43     Titel:
  Antworten mit Zitat      
Hallo,

oft besteht das Problem, die Daten in verschiedenen Callback-Funktionen mit verschiedenen Workspaces verfügbar zu machen. Um die Daten nicht jedes Mal neu errechnen oder einlesen zu müssen, können sie mit setappdata als zu einem graphischen Objekt gehörige Daten (zwischen-)gespeichert und bei Bedarf mit getappdata wieder geholt werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
tuelee
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 13.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2010, 14:36     Titel:
  Antworten mit Zitat      
hallo harald,

so, nun habe ich die gui und meine klassen implementiert. ich habe nun versucht mit setappdata, in der gui, mir ein neues figurehandle zu erzuegen und komme nicht so recht weiter. ich weiß nicht so genau, an welcher stelle ich mir ein neues handle erzeugen muss, und wie ich es schaffe dass das handle über die gui-funktionen und die gui hinaus überleben. wäre toll, wenn du ein tip für mich hättest.

gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
tuelee
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 13.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2010, 14:19     Titel:
  Antworten mit Zitat      
hallo, habe das problem selber gelöst, glaube ich zumindest.

also, in der gui eröffnung setze ich mit setappdata einen wert.

Code:
function test_gui_2_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

slider_data.number_errors = 0;

setappdata(hObject,'slider',slider_data);
%setzen in hobject

guidata(hObject,handles);


in pushbutton1 lese ich es aus und aktualisiere sie.

Code:
function pushbutton1_Callback(hObject, eventdata, handles)

slider_data = getappdata(handles.figure1,'slider');
%auslesen aus handles.figure1

slider_data.number_errors = 2;

setappdata(hObject,'slider',slider_data);
%setzen in hobject

guidata(hObject, handles);



und lese den wert dann wieder mit pushbutton4 aus.

Code:
function pushbutton4_Callback(hObject, eventdata, handles)

slider_data = getappdata(handles.pushbutton1,'slider');
%auslesen aus handles.pushbutton1

guidata(hObject, handles);


hoffe, dass ich set/getappdata richtig nutze.
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 - 2024 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.