Several Guis Sharing information

3 views (last 30 days)
I am making a program with several GUIS. Basically it´s a first GUI for input data, and them few Guis that are open depending of the input option. I am trying with a first simple sample of 2 Guis, and I am using... b=str2double(get(handles.edit1,'String')); setappdata(0,'R',b); secondgui; ... in the first gui, and... a=getappdata(0,'R') set(handles.text2,'String',a) ... in the second gui
This way it works, but I don´t understand why this "0" and don´t know what other labels can I use apart from 0.
I am interested in all possible suggestions Thank you very much.

Accepted Answer

Sean de Wolski
Sean de Wolski on 13 Mar 2012
0 is the root matlab handle. Thus you are setting a field 'R' to this MATLAB's instance that can be retrieved from anything in this instance. You could also set it to the handle of a figure so that the figure has a new field (or property), 'R', that can be accessed by anything that has access to that handle. This does mean that if the figure is closed, the info is gone.
Hope this helps.
  3 Comments
Sean de Wolski
Sean de Wolski on 13 Mar 2012
You can do that (and I did for my first GUI :) but it can be dangerous. I would recommend storing it in the handles.figure1 field since the figure will always be present when the GUI is open. This will then clear all of the info when you close the GUI - added bonus.
David Dapuero
David Dapuero on 14 Mar 2012
I understand that it´s dangerous becouse when you will open another different GUI could get confuse with the variables that still are active... Am I all rigth?
I´m now having problems to use the handles.figure1 instead of 0. I´ll try now to solve it and will coment later my solution
Thanks a lot!

Sign in to comment.

More Answers (1)

David Dapuero
David Dapuero on 14 Mar 2012
First Gui
function inputdata_OpeningFcn
setappdata(0,'hMainGui',gcf)
function pushbutton1_Callback
hMainGui = getappdata(0,'hMainGui');
b=str2double(get(handles.edit1,'String'));
setappdata(hMainGui,'Rosa',b);
resultado
**********************************************
Second Gui
function resultado_OpeningFcn
hMainGui=getappdata(0,'hMainGui');
a=getappdata(hMainGui,'Rosa')
That is my solution: Saving into "0" de handles of the MainGui. And acces to this MainGui handles also throw "0" in the second Gui.
Thanks a lot for the help... I am open to any recomendation or reference. David Dapuero

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!