2014-10-06 348 views
0

这花了我很长时间。我可以搜索很多教这个教程,但我无法做到,所以我需要一些帮助,并在这里提问。在GUI中,有两个列表框和两个按钮。我点击按钮2,我们得到数据。现在在函数pushbutton1_callback中,我需要使用数据。我不想使用'全球',因为它不是一个好方法。非常感谢。Matlab GUI,在回调函数之间共享数据

function pushbutton1_Callback(hObject, eventdata, handles) 

% I need to get data from function pushbutton2 

function pushbutton2_Callback(hObject, eventdata, handles) 

data = get(handles.listbox2,'String') 
+0

将数据存储在图的''UserData'属性 – 2014-10-06 22:10:25

回答

1

使用GUI的句柄结构来存储所有你想要的数据。看here以及。

function pushbutton2_Callback(hObject, eventdata, handles) 

handles.data = get(handles.listbox2,'String') % Store the data directly in the structure. 

guidata(handles,hObject); %// update the structure. Important! 

function pushbutton1_Callback(hObject, eventdata, handles) 

%// Here use the data as you wish: 

DatatoUse = handles.data; 

你很好走。

+0

您好,您的答案确实解决了我的问题,但它会导致一个新问题。当涉及到guidata(句柄,hObject);手柄中的东西被更新,并且我仍然有这样的代码:newitem = handles.element。这个新事物发生了变化,我需要newitem保持不变。你知道如何处理这个?非常感谢。我对GUI还是一个新手。你需要更多的细节来解决它吗? – 2014-10-07 00:56:14

+0

我自己底了。非常感谢! – 2014-10-07 01:54:55

+0

好,那么很高兴你解决了它! – 2014-10-07 02:01:30