Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

passing data from Gui 1 to Gui 2

1 visualización (últimos 30 días)
Hamid
Hamid el 3 de Dic. de 2015
Cerrada: MATLAB Answer Bot el 20 de Ag. de 2021
Hi everyone, I have an equation in Gui 2 that contains some inputs.
some of the inputs are entered in Gui 1.
what should I do???
please specify exact code and the right place of that and etc.
because I'm trying to figure out for 5 days and I'm gonna be crazy.
beside I read some answers related to my question and unfortunately doesn't work for me.
THANK YOU GUYS.
  2 comentarios
Adam
Adam el 4 de Dic. de 2015
Editada: Adam el 4 de Dic. de 2015
I use classes to achieve this in what seems to me to be the neatest manner, but if you are not familiar with OOP programming in Matlab and don't want to or have time to learn it then that is an advanced solution. If you create a handle-derived class and pass it from GUI1 to GUI2 then you can access this object in both UIs. The first can set its properties from the inputs of GUI1 and in GUI2 you can add listeners to know when these parameters change.
Other solutions tend to involve using
doc findobj
doc getappdata
doc setappdata
to locate the handle of the second figure and access it's data that way.
I would never recommend this approach and have never used it personally, but I don't have the time to give full code for you using my recommended approach.
Hamid
Hamid el 4 de Dic. de 2015
I didn't get what you are saying and I will be very thankful if you help me out here. I need this too much.
I don't use assignin() anymore.
This is my code (short version):
m file:
function varargout = GUI_1(varargin)
...
function Untitled_1_Callback(hObject, eventdata, handles)
% hObject handle to Untitled_1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
prompt = {'Maximum ambient temperature:'};
title = 'General Inputs';
lines = 1;
def = {''};
options.Resize='on';
options.WindowStyle='normal';
options.Interpreter='tex';
answer=str2double(inputdlg(prompt,title,lines,def,options));
handles.Ta = answer(1);
guidata(hObject,handles)
...
GUI_2 m file:
function varargout = GUI_2(varargin)
...
A=1/Ta;
...
after running, I get this error because I can't pass data from GUI_1 to GUI_2 :
??? Undefined function or variable 'Ta'.
Error in ==> GUI_2>Calculate_Callback at 401
A=1/Ta;
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> GUI_2 at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==> @(hObject,eventdata)GUI_2('Calculate_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback

Respuestas (1)

Image Analyst
Image Analyst el 3 de Dic. de 2015
Honestly it might be easier if you just combined them into one GUI.
  3 comentarios
Image Analyst
Image Analyst el 3 de Dic. de 2015
What doesn't work? In the FAQ it talks about using assignin() and Geoff Hayes solution in an Answers posting. Which did you use? Share your code for it.
Hamid
Hamid el 4 de Dic. de 2015
I don't use assignin() anymore.
This is my code (short version):
m file:
function varargout = GUI_1(varargin)
...
function Untitled_1_Callback(hObject, eventdata, handles)
% hObject handle to Untitled_1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
prompt = {'Maximum ambient temperature:'};
title = 'General Inputs';
lines = 1;
def = {''};
options.Resize='on';
options.WindowStyle='normal';
options.Interpreter='tex';
answer=str2double(inputdlg(prompt,title,lines,def,options));
handles.Ta = answer(1);
guidata(hObject,handles)
...
GUI_2 m file:
function varargout = GUI_2(varargin)
...
A=1/Ta;
...
after running, I get this error because I can't pass data from GUI_1 to GUI_2 :
??? Undefined function or variable 'Ta'.
Error in ==> GUI_2>Calculate_Callback at 401
A=1/Ta;
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> GUI_2 at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==> @(hObject,eventdata)GUI_2('Calculate_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback

La pregunta está cerrada.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by