Using a callback function which accesses two handles
조회 수: 3 (최근 30일)
이전 댓글 표시
Hello, here is the problem: my function creates two figures. The first figure contains a radio button, which callback function I would like to access both figures' data.
The code is something like this:
h=figure(...'tag',h);
parametres = uipanel(..);
h2=figure(...'tag',h2);
uicontrol('Parent',parametres,'Style','radiobutton','String','Pa','Units','pixels','Position',[240 95 120 15],'BackgroundColor','white','tag','bouton_Pa','Callback',@bouton_Pa_Callback,'KeyPressFcn',@key_bouton_PaetdB);
The callback function is :
function bouton_Pa_Callback(hObject,event)
%I tried using h2 as an input for the function, like (hObject,event,h2), didn't work
handles = guidata(gcbf);
handles2 = guidata(h2); % *This is where I get an error*
Apparently, gcbf can get the handle of the figure the button is located in (h), but if I try to get the data from h2 (which I believe to be the handle of the second figure), I get:
Undefined function or variable 'h2'.
How can I access the handle of a figure when I'm coding inside the callback function of a button located in another figure? I read that you could store and retrieve data from the GUI with getappdata and setappdata, but that would require me to "manually" create a variable containing all the figures' data, which is exactly what guidata is supposed to do, no?
Thanks :)
댓글 수: 0
채택된 답변
per isakson
2014년 5월 12일
편집: per isakson
2014년 5월 12일
A problems is that there are so many different ways.
One way is to use the property Tag in combination with findobj. Thus
the_other_figure_handle = findobj( 0, 'Type','Figure' ...
, 'Tag' ,'a_good_name' );
댓글 수: 3
per isakson
2014년 5월 13일
편집: per isakson
2014년 5월 13일
Yes, but don't make it a habit to use globals. I guess, globals and the tag-findobj approach are ok only with small programs.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!