Passing variables between GUI's and invalid object or handle
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi, I am passing variables to 2 seperate GUI's. The code is as follows
setappdata(0,"txt3",app.txt3);
setappdata(0,"N_students",app.N_students);
calling_MpPC_app = MpPC_table; % sending txt3 and N_students to MpPC_table app
waitfor(calling_MpPC_app);
app.Number_of_projs_floated_coded = getappdata(0,'Number_of_projs_floated_coded'); % getting output from MpPC_table app
app.Max_proj_allocations = getappdata(0,'Max_proj_allocations');
app.original_proj_list = app.txt3;
setappdata(0,"Max_proj_checker",[app.Number_of_projs_floated_coded(:,1) app.Max_proj_allocations]);
setappdata(0,"txt3",app.txt3)
callingapp = x_gui; % Sending Max_proj_checker and txt3 to x_gui app
waitfor(callingapp);
app.Roll_nos_GUI = getappdata(0,'Roll_nos_GUI'); % getting output from x_gui
app.Projnames_GUI = getappdata(0,'Projnames_GUI');
But when I get the output from x_gui app (last two lines). I get an error invalid object or handle. I think this is due to overwriting done by the previous setappdata command. And storing them in a root directory is as bad as declaring a global variable.
I am using App Designer to create this. But I didn't find any figure handle to specify in the setappdata command. Like In the documentation it says
f=figure
setappdata(f,"Variable name")
But I don't find any line specifying this. I tried putting x_gui instead, But the same error pops and an extra x_gui app window opens.
Any idea on how to do it.
PS: A workaround can be saving them into base and calling them again
댓글 수: 0
채택된 답변
Rik
2020년 8월 2일
The setappdata function also accepts uifigure handles, so you need to use that as input:
app=struct('self',uifigure);
%%
setappdata(app.self,'data',1)
%%
getappdata(app.self,'data')
댓글 수: 5
Rik
2020년 8월 2일
AppDesigner has a class-like design philosophy.
That line looks like there is property in you GUI called PAllocationUIFigure with the data type matlab.ui.Figure, meaning that in a callback app.PAllocationUIFigure will contain the handle to the uifigure that is your GUI.
For general advice and examples for how to create a GUI, have look at this thread. I personally have little to no experience with AppDesigner, but you will find usefull doc links on that page.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Develop Apps Using App Designer에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!