Using a callback function which accesses two handles
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Pascal
am 12 Mai 2014
Kommentiert: Pascal
am 13 Mai 2014
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 Kommentare
Akzeptierte Antwort
per isakson
am 12 Mai 2014
Bearbeitet: per isakson
am 12 Mai 2014
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 Kommentare
per isakson
am 13 Mai 2014
Bearbeitet: per isakson
am 13 Mai 2014
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.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Interactive Control and Callbacks finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!