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

Callback function von GUI1 nach GUI2

 

derwolf1509

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.03.2010, 14:07     Titel: Callback function von GUI1 nach GUI2
  Antworten mit Zitat      
Hallo Zusammen,

ich habe ein Problem zu dem ich auch nach lange suche keine Lösung gefunden habe!

Ich habe zwei GUIs (GUI1 und GUI2). In GUI1 ist ein Button1 standartmäßig deaktiviert ( 'enable','off'). Nun möchte ich aus GUI2 über einen Button2 den Button1 wieder aktivieren.

Hat jemand eine Idee?

Danke euch.


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 02.03.2010, 14:31     Titel:
  Antworten mit Zitat      
Hallo

Kennt deine GUI2 die handles von GUI1?
dann ist es schon einfach. In Callback von Button2 in GUI2
Button1 aktivieren.
hier musste du HANDLES.BUTTON1 anpassen
Code:

set(handles.button1, 'Enable', 'on')
 


sonst finobj nutzen,
hier musste du NAME von GUI1 reinschreiben,
und TAG von BUTTON1 anpassen
Code:

hbut1= findobj(findall(0,'Name','GUI1'),'Style','pushbutton','Tag','Button1')
set(hbut1, 'Enable', 'on')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
derwolf1509

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.03.2010, 14:43     Titel: Callback function von GUI1 nach GUI2
  Antworten mit Zitat      
Danke für die schnelle Antwort. Die zweite Variante hat super Funktioniert.

Nochmal zur ersten. Wie übergebe ich den die Handles von GUI1 an GUI2?

Danke
 
Christian
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 25.03.08
Wohnort: Dortmund
Version: 2008a
     Beitrag Verfasst am: 02.03.2010, 15:46     Titel: Re: Callback function von GUI1 nach GUI2
  Antworten mit Zitat      
derwolf1509 hat Folgendes geschrieben:
Danke für die schnelle Antwort. Die zweite Variante hat super Funktioniert.

Nochmal zur ersten. Wie übergebe ich den die Handles von GUI1 an GUI2?

Danke


ich würde es ungefähr so machen:
Code:

% suche den handle von gui1
hgui1 = findall(0,'Name','GUI1');
% hole alle daten
gui1data = getappdata(hgui1);
% hier sind die handles.xxx der gui1 gespeichert
gui1handles = gui1data.UsedByGUIData_m;
% jetzt die gewünschten handles/daten mithilfe der gui2 direkt editieren und mit
gui1data.UsedByGUIData_m = gui1handles;
setappdata(hgui1data,gui1data);
% zurückschreiben
 

Das zurückschreiben des "gui1handles"-struct mit setappdata ist nicht notwendig, wenn du nur handles ansprichst/editierst!
falls du alle handles der GUI1 innerhalb der GUI2 genauso ansprechen willst , wie die der GUI2 über z.B.
Code:

set(handles.gui1button1, 'Enable', 'on');
 

solltest du erst einmal darauf achten, dass kein Element der GUI1 den selben Tag/Namen hat wie ein Element der GUI2!
Wenn das sicher gestellt ist, kannst du, genau wie oben:
Code:

hgui1 = findall(0,'Name','GUI1');
hgui2 = findall(0,'Name','GUI2');
gui1data = getappdata(hgui1);
gui1handles = gui1data.UsedByGUIData_m;
gui2data = getappdata(hgui2);
gui2handles = gui2data.UsedByGUIData_m;
gui2data.UsedByGUIData_m = gui1handles;
% UsedByGUIData_m ist ein struct, also alle elemente von GUI1 der GUI2 zuweisen
% hier struct-Einträge von guihandles1 in guihandles2 hinzufügen (grad keinen ansatz im kopf)
setappdata(hgui2,gui2data);
 


Das kann man bestimmt noch irgendwie hübscher und schneller machen, aber vielleicht hilft es ja auch so weiter Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
derwolf1509

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.03.2010, 15:56     Titel: Re: Callback function von GUI1 nach GUI2
  Antworten mit Zitat      
Christian hat Folgendes geschrieben:

Das kann man bestimmt noch irgendwie hübscher und schneller machen, aber vielleicht hilft es ja auch so weiter Smile


Das reicht vollkommen...Danke!
 
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.