How do I pass variables from one GUI to another

조회 수: 19 (최근 30일)
Gerrit
Gerrit 2013년 11월 7일
Hey,
I'm still struggling passing variables from one GUI to another by using handles.
I have created a GUI called "main" including a push button "OK" and an edit text box "a". Using "OK" will open a secong GUI "main2" which is supposed to return a variable "e".
function OK_Callback(hObject, eventdata, handles)
uiwait(main2); %Open main2
e = handles.e;
set(handles.a,'string',e);
end
In "main2" I have a variable "e" being calculated in a function "calculate" which is being called after typing a number into the edit text box taged "d". By debugging I found out that "Calculate" returns the correct value. All cool so far.
function e = calculate(c,d)
e = c + d;
end
function d_Callback(hObject, eventdata, handles)
c = str2double(get(handles.c,'string'));
d = str2double(get(handles.d,'string'));
handles.e = e; % All cool until here!
set(handles.e,'string',e);
guidata(hObject,handles); % Update handles structure
uiresume; % back to main
end
What I'm struggling with is: How do I get "e" (or its handle) from "main2" into "main"? Also set(handles.e,'string',e) is not working.
Anybody knows what's going on here?
Thank heaps for any help!
  댓글 수: 1
Robert
Robert 2017년 5월 10일
Can you put some pictures with this app, please? Thank you!

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

채택된 답변

Jonathan LeSage
Jonathan LeSage 2013년 11월 7일
You can use the setappdata and getappdata functions to pass values between UIs that you've developed. Since you're passing values between UIs, you want to store the values in the root so all other UIs can access them.
For example, after computing "e" in your main2 UI, you can store the value to the root:
setappdata(0,'evalue',e);
By specifying a UI object handle of "0", we are telling MATLAB to store this value in the root directory. To access this value in your other UI, simple use the getappdata function:
e = getappdata(0,'evalue');
Hope this help to get you started!
  댓글 수: 9
Jingyang Xie
Jingyang Xie 2021년 2월 28일
Thank you Jonathan!
Joan Sebastián Estrada Ramos
Joan Sebastián Estrada Ramos 2021년 5월 23일
genius!!!!!!!!!!!

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

추가 답변 (1개)

Image Analyst
Image Analyst 2017년 9월 30일

카테고리

Help CenterFile Exchange에서 Introduction to Installation and Licensing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by