Using a callback function which accesses two handles
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
per isakson
il 12 Mag 2014
Modificato: per isakson
il 12 Mag 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 Commenti
per isakson
il 13 Mag 2014
Modificato: per isakson
il 13 Mag 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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!