Several Guis Sharing information

조회 수: 3 (최근 30일)
David Dapuero
David Dapuero 2012년 3월 13일
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.

채택된 답변

Sean de Wolski
Sean de Wolski 2012년 3월 13일
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
Sean de Wolski
Sean de Wolski 2012년 3월 13일
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 2012년 3월 14일
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!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

David Dapuero
David Dapuero 2012년 3월 14일
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

카테고리

Help CenterFile Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by