If I change a property of a UIControl in a callback do I still need to call setappdata before exiting?

1 view (last 30 days)
I start my call back with
handles = getappdata(gcf,'handles');
So I have created a local copy of the handles structure.
Then I modify a control with
set(handles.Batch,'value',1);
Since handles.batch is a handle, don't I automatically change its properties without having to call
setappdata(gcf,'handles',handles);

Accepted Answer

Walter Roberson
Walter Roberson on 30 Jul 2018
Correct, you only have to call setappdata() if you modify the structure itself.
Note: it is more common to use guidata() to manage a handles structure. It does the same thing as setappdata() of a property named UsedByGUIData_m, but people are more accustomed to reading guidata()
  1 Comment
Eugene Davis
Eugene Davis on 30 Jul 2018
Thanks Walter. In my app, which I inherited, there are several GUI data structures. They chose not to add these other structures to the grand handles structure. I suppose all the logic, wrt guidata(), about how to deal with the handles structure apply to other structures. The main difference is that these other structures do not contain GUI handles.

Sign in to comment.

More Answers (0)

Categories

Find more on Migrate GUIDE Apps 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!