2014-10-06 81 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