why guidata not saving handles data
Show older comments
Hi,
I've inserted these 2 lines in my GUI opening function:
handles. hText = '';
handles.allLines = [];
set(gcf, ...
'WindowButtonDownFcn', {@clickFcn, handles}, ...
'WindowButtonUpFcn', @unclickFcn);
I've a code that I added 2 data 'allLines' and 'hText'
function plot2_push_Callback(hObject, eventdata, handles)
handles.allLines = findobj(gcf, 'type', 'line');
handles.hText = nan(1, length(handles.allLines));
for id = 1:length(handles.allLines)
handles.hText(id) = text(NaN, NaN, '', ...
'Parent', get(handles.allLines(id), 'Parent'), ...
'BackgroundColor', 'yellow', ...
'Color', get(handles.allLines(id), 'Color'));
end
guidata(hObject, handles);
then I would like to use it here:
function clickFcn(hObject, eventdata, handles)
a = 1;
b = handles.hText;
c = handles.allLines;
disp(a)
disp(b)
disp(c)
but looks like the handles structure does not save the data from the plot callback..
how can I solve this? Thanks.
2 Comments
Walter Roberson
on 28 Mar 2016
Does this replace your earlier question http://www.mathworks.com/matlabcentral/answers/275722-windowbuttondownfcn-cant-detect-handles-data-from-other-callbacks ?
James Ang
on 28 Mar 2016
Accepted Answer
More Answers (1)
Antoine Hurtado Huyssen
on 29 Aug 2017
0 votes
each time you add Something to your handles you need to update the guidata
guidata(hObject,handles);
1 Comment
Walter Roberson
on 29 Aug 2017
That is not sufficient in this situation. The user had coded
'WindowButtonDownFcn', {@clickFcn, handles}, ...
which causes a copy of the handles structure to be taken and that copy would be what would be passed to clickFcn. Using guidata() to update the master version of the handles structure would not update the copy that was saved.
Categories
Find more on Interactive Control and Callbacks in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!