필터 지우기
필터 지우기

Passing variables between GUI's and invalid object or handle

조회 수: 1 (최근 30일)
Vasista Adupa
Vasista Adupa 2020년 8월 2일
댓글: Vasista Adupa 2020년 8월 2일
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

채택된 답변

Rik
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
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.
Vasista Adupa
Vasista Adupa 2020년 8월 2일
Thank you. Will do it

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

추가 답변 (0개)

카테고리

Help CenterFile 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!

Translated by