GUI: How do save data from one callback to another ?

Hi i want to save my data from one callback and use that in other callback.
eg. i have 2 button, one to run the first callback and the other to run the second callback.
eg.
function a_Callback(hObject, eventdata, handles)
a = 2+2;
function c_Callback(hObject, eventdata, handles)
c = 2+a;
how do i save or use the " a=2+2 " from the first one to be saved to the next callback, so if i click on "button 2" it will give me eg. 6.

 采纳的回答

The handles structure that your callback receives is meant exactly for this:
%It's a good idea to create the variable used in the callback when the gui is first created. e.g. in the OpeningFcn callback
function mygui_OpeningFcn(hObject, eventdata, handles)
handles.a = NaN;
%...
end
function a_Callback(hObject, eventdata, handles)
handles.a = 2+2;
guidata(hObject, handles) %save new state of handles
end
function c_Callback(hObject, eventdata, handles)
c = 2 + handles.a;
%...
end

3 个评论

Thank you, it worked :)
one last question, why do we put the OpeningFcn to NaN ?
You can initialise it to whatever you want, but it's a good idea to initialise to something when the GUI is created. One option is to do that in the OpeningFcn.
If you don't initialise it and the user click on the 'c' button without having clicked once on the 'a' button, then you'll get an error in the 'c' callback since the variable wouldn't exist.
okay thank you very much :)

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by